From a98210460d2c57b83377d098ac4c19e0906aa92f Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Thu, 12 Jan 2023 20:12:24 -0500 Subject: [PATCH] vault backup: 2023-01-12 20:12:24 --- .gitignore | 1 - .obsidian/app.json | 6 + .obsidian/appearance.json | 5 + .obsidian/community-plugins.json | 7 + .obsidian/core-plugins-migration.json | 29 + .obsidian/core-plugins.json | 20 + .obsidian/graph.json | 22 + .obsidian/hotkeys.json | 31 + .../obsidian-excalidraw-plugin/data.json | 87 + .../obsidian-excalidraw-plugin/main.js | 82 + .../obsidian-excalidraw-plugin/manifest.json | 11 + .../obsidian-excalidraw-plugin/styles.css | 291 + .obsidian/plugins/obsidian-git/data.json | 27 + .obsidian/plugins/obsidian-git/main.js | 31716 ++++++++++++++++ .obsidian/plugins/obsidian-git/manifest.json | 9 + .obsidian/plugins/obsidian-git/styles.css | 474 + .obsidian/plugins/obsidian-kanban/main.js | 114 + .../plugins/obsidian-kanban/manifest.json | 10 + .obsidian/plugins/obsidian-kanban/styles.css | 1 + .../plugins/obsidian-plaintext/data.json | 8 + .obsidian/plugins/obsidian-plaintext/main.js | 10317 +++++ .../plugins/obsidian-plaintext/manifest.json | 10 + .../plugins/obsidian-tasks-plugin/data.json | 14 + .../plugins/obsidian-tasks-plugin/main.js | 163 + .../obsidian-tasks-plugin/manifest.json | 10 + .../plugins/obsidian-tasks-plugin/styles.css | 199 + .obsidian/workspace.json | 163 + 2023-01-09.md | 0 esqlate.md | 6 +- hard_disks.md | 4 +- install_list.md | 18 - multipass.md | 240 +- nodejs.md | 72 +- plv8.md | 5 + sc.md | 6 +- sql_server/error_handling.sql | 64 +- ufw.md => ubuntu/ufw.md | 0 37 files changed, 44027 insertions(+), 215 deletions(-) create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins-migration.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/hotkeys.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/data.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/main.js create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/manifest.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/styles.css create mode 100644 .obsidian/plugins/obsidian-git/data.json create mode 100644 .obsidian/plugins/obsidian-git/main.js create mode 100644 .obsidian/plugins/obsidian-git/manifest.json create mode 100644 .obsidian/plugins/obsidian-git/styles.css create mode 100644 .obsidian/plugins/obsidian-kanban/main.js create mode 100644 .obsidian/plugins/obsidian-kanban/manifest.json create mode 100644 .obsidian/plugins/obsidian-kanban/styles.css create mode 100644 .obsidian/plugins/obsidian-plaintext/data.json create mode 100644 .obsidian/plugins/obsidian-plaintext/main.js create mode 100644 .obsidian/plugins/obsidian-plaintext/manifest.json create mode 100644 .obsidian/plugins/obsidian-tasks-plugin/data.json create mode 100644 .obsidian/plugins/obsidian-tasks-plugin/main.js create mode 100644 .obsidian/plugins/obsidian-tasks-plugin/manifest.json create mode 100644 .obsidian/plugins/obsidian-tasks-plugin/styles.css create mode 100644 .obsidian/workspace.json delete mode 100644 2023-01-09.md delete mode 100644 install_list.md create mode 100644 plv8.md rename ufw.md => ubuntu/ufw.md (100%) diff --git a/.gitignore b/.gitignore index e59e966..4e8d50a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ *.swp -.obsidian/ diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..16756b1 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,6 @@ +{ + "livePreview": false, + "vimMode": false, + "showUnsupportedFiles": true, + "promptDelete": false +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..adaa9c8 --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,5 @@ +{ + "accentColor": "", + "translucency": false, + "theme": "moonstone" +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..4e782d8 --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1,7 @@ +[ + "obsidian-kanban", + "obsidian-git", + "obsidian-tasks-plugin", + "obsidian-excalidraw-plugin", + "obsidian-plaintext" +] \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..3106ebd --- /dev/null +++ b/.obsidian/core-plugins-migration.json @@ -0,0 +1,29 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "starred": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..086a8e4 --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "starred", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..60d764b --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": false, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 0.9221079114817278, + "close": true +} \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..c299a22 --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1,31 @@ +{ + "command-palette:open": [ + { + "modifiers": [ + "Mod" + ], + "key": "P" + }, + { + "modifiers": [], + "key": "F1" + } + ], + "obsidian-excalidraw-plugin:export-png-scene": [ + { + "modifiers": [ + "Alt", + "Shift" + ], + "key": "F" + } + ], + "app:toggle-right-sidebar": [ + { + "modifiers": [ + "Mod" + ], + "key": "W" + } + ] +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json new file mode 100644 index 0000000..6055fd1 --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -0,0 +1,87 @@ +{ + "folder": "Excalidraw", + "embedUseExcalidrawFolder": false, + "templateFilePath": "Excalidraw/Template.excalidraw", + "scriptFolderPath": "Excalidraw/Scripts", + "compress": false, + "autosave": true, + "autosaveInterval": 15000, + "autosaveIntervalDesktop": 15000, + "autosaveIntervalMobile": 10000, + "drawingFilenamePrefix": "Drawing ", + "drawingEmbedPrefixWithFilename": true, + "drawingFilnameEmbedPostfix": " ", + "drawingFilenameDateTime": "YYYY-MM-DD HH.mm.ss", + "useExcalidrawExtension": true, + "displaySVGInPreview": true, + "displayExportedImageIfAvailable": false, + "previewMatchObsidianTheme": false, + "width": "400", + "isLeftHanded": false, + "matchTheme": false, + "matchThemeAlways": false, + "matchThemeTrigger": false, + "defaultMode": "normal", + "defaultPenMode": "never", + "zoomToFitOnOpen": true, + "zoomToFitOnResize": true, + "zoomToFitMaxLevel": 2, + "linkPrefix": "📍", + "urlPrefix": "🌐", + "parseTODO": false, + "todo": "☐", + "done": "🗹", + "hoverPreviewWithoutCTRL": false, + "linkOpacity": 1, + "openInAdjacentPane": false, + "openInMainWorkspace": true, + "showLinkBrackets": true, + "allowCtrlClick": true, + "forceWrap": false, + "pageTransclusionCharLimit": 200, + "wordWrappingDefault": 0, + "removeTransclusionQuoteSigns": true, + "iframelyAllowed": true, + "pngExportScale": 1, + "exportWithTheme": true, + "exportWithBackground": true, + "exportPaddingSVG": 10, + "keepInSync": false, + "autoexportSVG": false, + "autoexportPNG": false, + "autoExportLightAndDark": false, + "autoexportExcalidraw": false, + "embedType": "excalidraw", + "embedWikiLink": true, + "syncExcalidraw": false, + "experimentalFileType": false, + "experimentalFileTag": "✏️", + "experimentalLivePreview": true, + "experimentalEnableFourthFont": false, + "experimantalFourthFont": "Virgil", + "fieldSuggester": true, + "compatibilityMode": false, + "drawingOpenCount": 0, + "library": "deprecated", + "library2": { + "type": "excalidrawlib", + "version": 2, + "source": "https://excalidraw.com", + "libraryItems": [] + }, + "imageElementNotice": true, + "mdSVGwidth": 500, + "mdSVGmaxHeight": 800, + "mdFont": "Virgil", + "mdFontColor": "Black", + "mdBorderColor": "Black", + "mdCSS": "", + "scriptEngineSettings": {}, + "defaultTrayMode": false, + "previousRelease": "1.8.9", + "showReleaseNotes": true, + "showNewVersionNotification": true, + "mathjaxSourceURL": "https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js", + "taskboneEnabled": false, + "taskboneAPIkey": "" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js new file mode 100644 index 0000000..3024c27 --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js @@ -0,0 +1,82 @@ +"use strict";var obsidian_module=require("obsidian");var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); +const EXCALIDRAW_PACKAGES = "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YUmjU8PU0VUxXYMY03kACY0yk0leU/tU8s08dU1s0380klopg0oo0naAQC0hA09pwHC0/8U6SgSM0otKFjceY7D7/XPUxHU8o02s0hS0j7/BE06yUyQ0stSaKEhDEZaEAy0hzICY04I09c0wQ0gs0mC0sSge80l80tgU980skU/0Uhy0s805cJNc0y800I0rc08I062IoEoWy04cU/C0lHUxcU9YU480/y00cUxy0piUfPAgoUts0v800s0rs0zLUjzU0cUsoUoi0vvU2TIeC08DcS/5IkAUi0g00iw4UaMJK0//UlM0nU0x/UsS0xGUiS0/806S07s0uS07PU3dUmS03C01802k0oS0ss05QUszUks0n+U4S0xq00S0uJUsi0wc07k0nJ4biUgN0ISUhyEKy0/K0tM0kk0+tU+c0h9UthoFtU+fUzRUya02s0j7/agIGk0ozUsAU1q0m9wewUwS00q0tdkz9UhPUzk0rq0ii0kg0tJQjPU1dUpdUu+o1rUrzUpa00dUuK0+S0vy0n+Uno0s4U4BAFaU3RUn7IdHU1DU1vzD007w09i0wYUu9Uri0ns0hrUi004a0tFQOgU78U3q0+GAdiMSHUq4QVqUsWIPS0gxUmU0j60uU01U05YLaG0n+U23UuG0+K08VKOZUmM0vvUoa00IkBzUn60060pAU0jU66IdU035U7c0/IU8c0nU0kLUjPAebU3G080UsjU+S0wbUjC0rTUjPcOjU3K05M00m0v60pLUnG0jjUgTU+m0tzUnjUk60zm0uTU+9UxTUoBU9G0vK01m0/jzCTU7G0pi08LUx7UyLU7m0hTUnjU5m0gNcTG0sLzTpUorU/m01zU6LUxm02LUkW0lm0jYyVM00IkJW5T6UjXyUsYAM0zg087wF/UyM0+ZoLqAKi09iAVIUwNU+6UqW0leUgq0200nW0gNcSGAD7odygUk0qHUwM0rg0yGUtFUsQU3Y8WDKD/Ui80ns2Sy0120jpwd20swNKKALI0ot8YZU8y09y0zc0vTU4m02yJWSAD206O0goUuO0z1Uv8cCPyFJKRM0wk0t201O0qO0ywUr5UjhIRW0pw0nEAH408yAXW0IAUtE0/O0iO0wu0mrEB7Uyz2TSALRAKy0wGAOJgd5wau05hJWu0rU0+u0t7MIu0pu0krU8O0/W0pmgROAJkgMc06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0yNaydaytaz7qy3BBrazMcBYAAZayTWA5aymayxazFayQayVayLazryAMxTlpADVYbayTay7ay/ay9azbbSvazXyAfazHqzbaznqzDQBzazeaz1az+az7az90zvayrayg6yA8yrizgHTlyzqB9KvS1yyBsy5kYhsztyymFSXiy9yywQyDyyAUy7dThYBPoyQUypvSwUzFsy/ozlszAYzRNTjnTgDTBKzh8DGfTpkpxthu7puAgOtpo0YEyyS/TwYAy/SJZTDiyiBSTKyKKzdszCazUczF9TtZTDsyFrTjcylQyuzSkczW0gLcypLSNrT56zCYyQKzbsywKycKzjVTHsy3HTitQz4yEKyYrSALSMIysayjIyarTbrSJaztZSwgy4EzZyzojceoywczvrSZqz8zcocykEyreFjsy1hSrszzczmrSEcyNBSV6yG6z3CzVCzbhB+czwgzlBSacyB6y/6zgtSw4z1CyFcyBcy8bTgGyCbS2czEKyqqzOczGbTRizQGyeiyZcyBiyH6yhizL8yaazRcyEGziyzhqzf6y0GyptTZcyAGzBqytqyCGzUGyViz0GyNczLBSqazhiydNTCGyqGzzBSSgzG8CbBSrNTzsyi3w2Gyzcy4GVKGzKnT61TL6ygcycLS1uwiazEdTahSwCzBLSHKzFPT1nS+jxgyzxGypIzxGyKIz/Cz7CzNqyUSz2v5PM4snSJsBj1SL6yvsyT6yXzTSJAU0gyUybsyhzSqSzKLIdIBnAz2XTXIzCYBncyCwz9H0qgAewyGozc2ABQgMLQM9TBwy75S18zizSJjwSOs0fTGGyNZSYEFLCB4SyxnAgbTeJT3YpIiyQbTcizxJTMYAOmAfGyEXTWIybLSDDTx5SnHQ2sycXTwYzDpTEmybCysMzOjTomzBXSmizIGyWiyqcyWcyCbSyiznQziiyNyAoCy9NS18yM5Siqy6ayIwyCVSDPTS7TeGzBTwWNTeBSBe5AGyoJBfgBvygXABOU1/7SgAhtmJr9THLjWSyOMA++AoSzCyy5NSMnSBSy1oyYvSEky18ymmz4NTWmyh6xemy3PT2myyrhw2AlyywJTvAh7iyGgygoyniyC6zdyyx3TY8yS6ybdSooygUzoQzK6y4ozhFSa6zLyzkoyK1S1szHLj0fEJCBltTgDTrKyuDSaUzrDw340JZSsQyo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guhEReh5kt9ahhcpJooCopICiCoqiotFkuWqk++PLRC5ks1umOoG2arx4nxwBV9je+MeZjRqmhsFK5CIvGeEp3rAVbw1is1uinLzuKsyotE4BZkvhEjqotL/NDm0wSueKuhRVeKuZKry4MTrw+Ks+Er1koIStZopIhQywJISp5aojkqpKooSoFoptkvBKqo8EhKpjqVXWCdkpWKOREorskqKyGSo9kpRKsxEv/EFwUk4SrvSnTgB4StVouxKtWtGDkuVDTDkuFarISqpKqpEovqxpErtouW5N1otNavNou1arpKqJjSZKuNatESsD1H5EudooESUtgGOESa0wDcMQAkMCot0kKEkU/zDcA3MrwxDZsqYo29aqFAl9aroUSNoQTQEZwEZwDBbgfMsaiu4IBIEtLEqiasW4PIAmRlHOHWKxn6p2iYCnMtb0oU9C9cqZdE2QSesrP4oV4v4iM0sqfCs8YmZa0p4qXMvTM3/UR7kqvCExiopGAECTravyCAbauvqCGjm9dFniBR4W53NrqKmwBKAD3khHjz4aCYctVGEoW2sqyLtNnkoy4BzQGeBU7KG7EoxAAmk1VzSWBDSsMXl1XaheYED5mU8kpdleymzyun8nr8nkQmz4uuLFMsofyC94lhBlHkoaQRmqvP0oaIBjapbvEskV0aJoYubao7CFbaqOCuEQxoEtJsvd0vzCBMwDJdH42jHauZCppPxODwCUsQWTshxW8CpaCHaq/ard3x/at/B0hvmXavUChBnhhKG2sXjgFxgCNEh9+FrqKov1QxkwYodhHHUovauPUumqqvCojnIffAvatjapfniw6qrqHqnA5sFd4u7av0yN7atGm0PRRj4xIthFRQbDBIthbaOjyrfMqCYvcstTJOhuXXUoizI3aoWRTAaG9cqaisw0k8wJsNSTzCgUuOp25+TSip46qoxmQHGqiF3ar3Msj6gPapIkiPaq+4NwEvQ6pFMtJvBE6sTar2Cr/vELMwp5iudFaUt3Ssd4ouGQpEV+gAtwAPREFaoX+On8jsUgTas8+V46qciPfFDY6pGDJgpDQ6uVbxbvA+aD7gAPGEkJWKUqoEsKEmpZlf4oTnisCpAEoKUGLDGBCqBGCfavfMpvUqhovUEq3koy4voo34+hW0HjBlhIp2YAcMuZazp4qYEslu2uMrk5F54sy8UudhEsXRM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trvtozt4CQWZUtBt9qdgUd6Jdq1dz4qPftgLtg492oU3/d7Z0+hgAFmALt2ZUuc90Jt3ACnGt7IdmXd8ymWjt5sd6Gwag6rA9/idzw9z4qQ5t6Wdic97Z04IdhU9kc9g89gIU/0IUJtyRd1vak896fa0DdlZtw0dyvagztoHt7Ptjbt2A6j9drc9qYd8WtybtpPtk8oPWUh2gVFU4btuk03lgApQCsgIs9kPaBttmetoBt5tthQdsBt0s9z5tsut9iACutjs92Bthth5PtoWtvhenOAQFF5htnfA7C92Yh5R441O5R4j6tsymD+tnCoIi8MC9h/lEs9gBt2et4Bt1btoRty3SuC9ls91etts99ety6tzs9/M92utiedmC93s95xtmc84V5LvarFcaY63iaaY6w/tlEKFGtyXtsS90S97GtvgC62t12MdTtpPa4Q6gdQJ1t6w6zudkZdoXQZ/alS96vICSAOS95/a4S98S9gIUyS9vS9k9862tlM9wS94S9jS9vS9/Xt2Gtiy90rd2E6ucInCoDqcci9rYY+i9qi9qC9+etri9yi9iBtlet6Bt5C9rs97etzftx+tmcgZ+tmI6o+tyZ8I8BDOtuy9vERxy9iC9gcKwBtguths9wztjy9+C91s9xC99s91i9lC97s9zft+ht0htvutmoUAetqOtivHdutp890UOjNa3K9nK91htlhtx4QC6GdhtkettdtrK90q9phtms6Nutm+t6q9+58LhtySERbtn+txs9l89vIAXft8udxC933ttw3T7tratxvAqC98NoBlqqK9yi9/vAuJtmi9+Wytbt/+tzy92Wt5i9mBt3y9gs99C95899bt1I65vM6Dt//atQdnKdsS9wIIdS9nGto69m/KgIUg697Gt4V5UA1XBtxGthsd7Gt2E6zi9rq9ja9/Ztuhgc/+oq9pBtjbt3ZtgdQOfrK1dzGt3xts7ds44c/+ux84V5A9tqmt1g9uZ8Nq9uCnCa95y9qa9pttty9h69sWZ4TtsHt4ftuHtwltsAd7Zt56dm3dg0djG97696WdqodjQIe7d4vMult3ACj5d1zk+oAY+d5Odxsdjr8+ltxcdiDtsLd+cKGwdtgIf5ti8KXvdyfakgIKwAdLUxZt5Vt7U9+m9+1t+cKcedta9rftoY6Cgdr/nLRdzYdqm98DtlyGeDtsFnSG9/+t6G9uet+K99a9+a9pK9pi9lK9li9zetn89oq9uq9jhtphtr2wCq93Z8YetnW92q9uOt+7OC/+kOtnW9pq9zGg658aq9g29zK9o290Ot0sopht7gICq994GRq9lq9tZ8Q29nutpAy54QJhtxptp29thtlOt0+O+697iSs9w+htgXKp3avi9wFMaKV4Id1A6hlU0+OiK98kfaW9uxt/32WG9hK9x69jmt+9t+xAWdEV69pxtg+dkZd+a0rBtt4GAnUy+doYdmP4KZtz+dgqd7AIUA1Au9+x8ou9tRd2jtt+dmu9ou9n/AA+dzzwMmtku9mu9+u9z+d9zdmP4S1i+TtgdQVu92jt9u97mtou9/Xt7AIPm99DtlO97ft7gAMW9rD88W94m9pdYJ1tkjtzXdiydmodxTd/Rtrc9wjUdrtwjULO9zDtwOwAa93QIfztlkqIvtv1t7vagD82LdkE9y0dle9tkdte9syd/e9m+9/Gt5223fQLXABO9xttuW92i9yedxW9xi97y9tK9la9ji9/m9t695xt39txC97LtmtAhftlGt4+dggAZOdrGtozjNBdyO/UANOraCB9gm97mtzg9rS9nkdhB9kA9xB9zg9hvaz9xDo67e97i9k9d94GEy906mIS906mEi9t7ODq9ua9xO91utmGtildy3t6Dtve99uAHq92h9mUILBtm+9uDt1nMRLFyQdie9r5t5h9858QC92et+Jt9h95IgTh9hW9yh9yBtvIAMW9nzKpdYLBt+lt+OgPIAR9tw/a2h91CAOqgDg91A9/Y6pQIJR9xh9pQIOBdpdYOnduKd2hgNad0/aphgQud99tu+90Oc3QIT5G8Zdk8dyztm1clkqd2dyMdu+99/t3QIXR9ojtglt+/ayR91uAbVtzpt81dgo9swd6t8lJE3x93vdmR9hNtgCd0696t8o0dwjtwjtqNtt299h97/AZ+9yC9mG9+W9gW9zdttNdrDxKRtlhgH/AbI63ttxRt31dxRtpR9l9thGt7J9gxt2RtzFtw1tmwIEdtw892dtqHQyltqCdwu9wp9gdtixtse9zq9ie9+edmedpedsR9ve9wDdvVgKwABqd4PdhOwPqdmNdt4KU7t1kd2PdoZ96lwLqc8ftt4Kf5t9wIdJ9+R99Fdi7trptjC0PDd0xdohd2w9lTd2Ddmk9+I9+o61qdllttddnkdnG9n/ASn8rwMtA9m7dt+dj6dmodw5to5991t/G9/Pdnjk3Vt3lgNptgzd4/EvgCwBd8Z9u59xpt+YdqwIRSd+1tnjk01tw1dnjkix9lkqTM9sa9kenYR9rftlp9xG92ed5edzdtsdtzFtoudgnUvqd1J94W96JC0j8w3tn0IOqAEmtkmt369mUITmt/ywyf6aNtoa97XSrgd1QgYF9mtmUF96K9uC977tl+9pO9qPt2atr2yms9nqt6s915tui97ftni90d88p94G9yHMYp9tRt89tuugKcd0ANXq9vF95R9yjtrR99x971toed63thh9iTdvR99iAH/ALt8oV93q94YMWh9sV9m3tiV91l9qV91uAJMAOV9vIAdx9xV9pQIYttje91V90ztmV9qm97V9jHdnV9zfa/e9i19++94F9zYgOJ9mK96i96C9uG9kut+ptxa9lW95a99i9tC98e9uWokhtmoUE29pOtiq9s296q9th9wO9719jJQUhtv19g+t8OtwN9wq9929n19rW9/5EXK9xq9qN9rKGFq9ms6cG95dEUF9hIjUR9let6e93q9/5ttw3Ax9g98hhd0x9kt91A9/O9qwAax9sx97Nd+x91A9xx97a91h9019kw9vWd2+95vMqm99e9yvt3ftyV9hVUkDtyu926i3fQbCgO194a9xE8Vy9xJ9rN9uptjWdV19pC97+9j19jh1/m9gK9zPqg+t3tG4+tukADOtkN94q9hht93a/utvW9wetjutx4QYAd3B97q9wE99vaiB9kQ6sxtyB9hVtsmtx460A63xt6B9689zhtzOtkSAE9mTN99f7bN9lI65t9lZt9x9g59wjtrXtwTXfVt0H8irtwdtyR97vam1ctI6+H88Vtrl9rRtoD9n2dj7dmF9nFttRtudt41t1zkuR9qjtjp9+AAR9t1by9D95xtjmtqm98/+2h9pMALqcvt9xQ2UiMHOt9+94mtkQ69x9iLtwodwJtpQIMNt1zdo9tjy3Ufa/TxCO/Gh99R9jHtmwIAzdlJE8Jt0Vt7edwd8xx9q991zkz4dz8994KX1trR9vyd1byyn82gduKdyT94nd+Rtjxtj4dvBdwDdrDxWA6sLdgJt9Gd3QIcDcBLtx4dxj9qDtwbdspA3D84Q9oJ00Nt3XtgCd6tA/J9mwduKdxA6qHQ49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uGq2ejbygAKBWxoAHL1u/O3ZLb/jtwKy2eTYkBt0gB5dbEit6y27UrY5NsB22TbbB2tsRWy4resVsEK2albiGt2DW3zbcQ1uLHVaFbHpt6bW86bY5VvWAAabbf+tqBW+gbYsVtB63CdbCxtjpW/BrcQ1t3q3klbwet3J2yArcFVsks28BWD95/+i0/edkBvua3xFbc9t/pW2NbdwNsr22UlbLGtllW8orat1sca25Tb9yt5Cm2oDfH2t5WWFHbcttjpW3TbYWdv/q3wnblut6wAMnrfdNvia2cTbgGt8a/oA7cJ1up230Vbf8txqy1RTb6Lo4u2P1bGrt79WzS7asVv+a2EbbCCt6wALi7cY1s+23Bnb58t1rW+wraVds9K361bjat5tW167b4pvtj8JrLglNmay7q7YMEv6u2lHbczt1s2ya7eGdtP22RCrkAABp2/Y7ZjVufy3b7bPONi525AACidsCK3Zrb9at6a/hlrcFNujO2E+aShViZ87wrfEVsVu34HbBlNzgG3oDaIYvr7WU3bixtu82wZbeFVsKm2q7bWdtqe21Qra5dtfy2eXbTit812wy7f4Nshq2OdbMatkhW2BrdwduQa3g1bDCti3W1Abdhts5K3LXbRptshWza7dmv7IU3N9rvhV5N27LbaUdvd222rb0lts027XrfONtGnWzAbzKASIq49ra4VuWA2HtbRrt4s27TbczdtZW3rAbYBtptW1/LbDVvTK2r9rwjFwAAIXA8FtqPWwirckYslK2+9bk1/RLW0/tZTVtpq2nAbPytgdW+Vre7W7vAAkdbdStlHWwVrZ0YuRq3Elbq9ttwG8mrdPdsGO20sbj+t7tW+nrYbNs6G3Z1bJNt3xW/MbdFVvya2Blb9dt4h21+7aGpsjFXrIbyet2vWyRanx1siu2krbkGtkG2zCrbY1tfy3IDbwZtwj29rrZSVu2O283bgTF4FSz8rfgtsgq2/bLoyzAOy9AgJTwv463dNbROt/vW2jretEtx2WmnzM6t3j2/3reSVsye2Ylb/et4e23m7dxVufU3XVbdjtnFW6J7bQOudW3imLZdl35WyqbYqVtO22hFbl1thM22QrbR1umAArVbe1tnE2+6bfT1vEe2FTbrWt+BW3BbezNvca2htbXJt6ZWwFrZvtsNK32Db02thxW1XbantviG3klbU7t282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CjjYoscKMHSjgYomcKOCYjZ7zARKPAiiIIooKKP1ijewordKJLSj/YoucKLNiiXko+uKLqSihwoocKNoSjaYoy8KIwijTAAAyKOviiAYoxSKMSiiMYouGKM3iiRYooiKJCiioEoyWKMGijmkol2KLaSiekosCKINSinwo/GKLyYjOdLC9KJYSjVwom9KLvSid0o+2KMgAAn0owiKJfSjAIon2KISSiv0o1sKI9/CIngyRKOYSioIowyKNgiiAUosxKMC0CCd7HWKNMii04ouZKJDijAYohqKI0SjOYosLQIx+t6RfPtCOJ7gmMo/pKNYyi0EoiOKMmW9F4gvjKPmSilYowTKLVii4tfTiKIaii6IooiKNEijMIo08hAy0Dz67Dwwhriiwoo3pKO4ij6IosKKMoijJRfL1KNHij5AXfcKIIijhwomSKIZiiBIomOKI8ii04o/DKKBiigpPM2KJ3SiG4oqzKIBYCgWArc82HCi+Uo+SKJrSjBoog8KNTSiS0o/NKJcSinwolKT23Cia0o0eKLH/D3gAXRKN8ij7YojNKMAii6Yo7TKLrCDhTIukAD4ijyYo5sKNcii7wouGKIgSihwo+CKLTiiM0ol2KNeii6gvLeKNAijTEo+iKMPZdx4o3LKM6Sisrww/SziyjOwokNKLKii54o4rKLoP9x4o58KOGijEUo9iKz9iiMUoiJKIQiixTzTNKOJij4gXDRKPXCj9wonsKPqSjaEnD2KMCSjdwo9jKMua84Mo/VKKoyiqso2jKM8ddBVvHqKIaijTMogyKPZSjsMosrKLyyiCYo47QMkiiMYojLKP4iiDy/WCKMBiimUollKLZSjgEoq8IJuSirwogaKM/Sj9wothKOkij9so+8v0AAAc6CvCj44o5lKIuyjfUo4BKIjMibsou7KL2yjHso7DKJ/Cj8soy1gOPCj4Io4bKKtUcAYowtKJX3szwojpKMmyi8EXbSKOPCi/wokmKNSSienXP8KO3CjTwo3WKMmBdHwoyaKIkyigIo7ViOdgB10o32KJbCiMYoxSKKkSjL0owSKNNiiDwo8mKKlSj6Io3cKOsABgcosZKL3Cikco2bKM3CjRAInmu2cyjcoo1zKP9iiPMovNKLvSiNIon2KKayiBIon8KI3CjT0ozsyLoiC7zzenKIPSihwotzKNMyji0ol8KIFijsY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";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.8.9";function _interopNamespace(e){if(e&&e.__esModule)return e;var A=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(A,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),A.default=e,Object.freeze(A)}var obsidian_module__namespace=_interopNamespace(obsidian_module),React__namespace=_interopNamespace(React);let random$1=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,A,t)=>{let i=(2<{let r="";for(;;){let A=t(n),s=n;for(;s--;)if(r+=e[A[s]&i]||"",r.length===a)return r}}},customAlphabet=(e,A=21)=>customRandom(e,A,random$1),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,A)=>e+((A&=63)<36?A.toString(36):A<62?(A-26).toString(36).toUpperCase():A>62?"-":"_")),"");function JSON_parse(e){return JSON.parse(e.replaceAll("[","["))}const isDarwin=/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),CTRL_OR_CMD=isDarwin?"metaKey":"ctrlKey",nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},ROUNDNESS={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",LOCAL_PROTOCOL="md://",VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}',DARK_BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}',FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.snw-reference{display: none;}.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="save",PNG_ICON_NAME="save-png",PNG_ICON='',SVG_ICON_NAME="save-svg",SVG_ICON='',EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';class Random{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzString={exports:{}};function splitFolderAndFilename(e){const A=e.lastIndexOf("/"),t=-1==A?e:e.substring(A+1);return{folderpath:obsidian_module.normalizePath(e.substring(0,A)),filename:t,basename:t.replace(/\.[^/.]+$/,"")}}function download(e,A,t){const i=document.createElement("a");i.setAttribute("href",(e?`${e},`:"")+A),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function getIMGFilename(e,A){return`${e.substring(0,e.lastIndexOf("."))}.${A}`}function getNewUniqueFilepath(e,A,t){let i=obsidian_module.normalizePath(`${t}/${A}`),n=e.getAbstractFileByPath(i),a=0;const r=A.endsWith(".excalidraw.md")?".excalidraw.md":A.slice(A.lastIndexOf("."));for(;n;)i=obsidian_module.normalizePath(`${t}/${A.slice(0,A.lastIndexOf(r))}_${a}${r}`),a++,n=e.getAbstractFileByPath(i);return i}function getDrawingFilename(e){return e.drawingFilenamePrefix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(e,A){return(A.drawingEmbedPrefixWithFilename?e:"")+A.drawingFilnameEmbedPostfix+(""!==A.drawingFilenameDateTime?window.moment().format(A.drawingFilenameDateTime):"")+(A.compatibilityMode?".excalidraw":A.useExcalidrawExtension?".excalidraw.md":".md")}async function checkAndCreateFolder(e){const A=app.vault;e=obsidian_module.normalizePath(e);const t=A.getAbstractFileByPathInsensitive(e);t&&t instanceof obsidian_module.TFolder||(t&&t instanceof obsidian_module.TFile&&new obsidian_module.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await A.createFolder(e))}!function(e){var A=function(){var e=String.fromCharCode,A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,A){if(!i[e]){i[e]={};for(var t=0;t>>8,t[2*i+1]=r%256}return t},decompressFromUint8Array:function(A){if(null==A)return a.decompress(A);for(var t=new Array(A.length/2),i=0,n=t.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,w==A-1){g.push(t(p));break}w++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:a._decompress(e.length,32768,(function(A){return e.charCodeAt(A)}))},_decompress:function(A,t,i){var n,a,r,s,o,l,c,d=[],h=4,u=4,g=3,p="",w=[],m={val:i(0),position:t,index:1};for(n=0;n<3;n+=1)d[n]=n;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(d[3]=c,a=c,w.push(c);;){if(m.index>A)return"";for(r=0,o=Math.pow(2,g),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,g),g++),d[c])p=d[c];else{if(c!==u)return null;p=a+a.charAt(0)}w.push(p),d[u++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,g),g++)}}};return a}();null!=e&&(e.exports=A)}(lzString);const{exportToSvg:exportToSvg,exportToBlob:exportToBlob}=excalidrawLib;let versionUpdateChecked=!1;const checkExcalidrawVersion=async e=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const e=async()=>JSON.parse(await obsidian_module.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),A=(await e()).map((e=>({version:e.tag_name,published:new Date(e.published_at)}))).filter((e=>e.version.match(/^\d+\.\d+\.\d+$/))).sort(((e,A)=>A.published-e.published))[0].version;isVersionNewerThanOther(A,PLUGIN_VERSION)&&new obsidian_module.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${A}`)}catch(e){errorlog({where:"Utils/checkExcalidrawVersion",error:e})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapTextAtCharLength(e,A,t=!1,i=0){if(!A)return e;let n="";if(t){for(const t of e.split("\n")){const e=t.match(new RegExp(`(.){1,${A}}`,"g"));n+=e?`${e.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${A}})(\\s+|$\\n?)|([^\\s]{1,${A+i}})(\\s+|$\\n?)?`,"gm"),r=e.matchAll(a);let s;for(;!(s=r.next()).done;){n+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const e=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);n+="\n".repeat(e),0===e&&(n+="\n")}return n.replace(/\n$/,"")}new Random(Date.now());const rotate$1=(e,A,t,i,n)=>[(e-t)*Math.cos(n)-(A-i)*Math.sin(n)+t,(e-t)*Math.sin(n)+(A-i)*Math.cos(n)+i],rotatedDimensions=e=>{if(0===e.angle)return[e.x,e.y,e.width,e.height];const A=e.x+e.width/2,t=e.y+e.height/2,[i,n]=rotate$1(e.x,e.y,A,t,e.angle),[a,r]=rotate$1(e.x+e.width,e.y+e.height,A,t,e.angle);return[i{const s=1/t.value;return{x:(e-i)*s-a,y:(A-n)*s-r}},getDataURL=async(e,A)=>new Promise(((t,i)=>{const n=new FileReader;n.onload=()=>{const e=n.result;t(e)},n.onerror=e=>i(e),n.readAsDataURL(new Blob([new Uint8Array(e)],{type:A}))})),getFontDataURL=async(e,A,t,i)=>{let n="",a="",r="";const s=e.metadataCache.getFirstLinkpathDest(A,t);if(s){const A=await e.vault.readBinary(s),t=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:s.basename,r=await getDataURL(A,t),n=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:r}},svgToBase64=e=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(e.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=e=>{if(!e)return null;const A=e.matchAll(/base64,(.*)/g).next(),t=window.atob(A.value[1]),i=t.length,n=new Uint8Array(i);for(let e=0;e{var i;try{return await exportToSvg({elements:e.elements,appState:Object.assign({exportBackground:A.withBackground,exportWithDarkMode:!!A.withTheme&&"light"!=(null===(i=e.appState)||void 0===i?void 0:i.theme)},e.appState),files:e.files,exportPadding:t})}catch(e){return null}},getPNG=async(e,A,t,i=1)=>{var n;try{return await exportToBlob({elements:e.elements,appState:Object.assign({exportBackground:A.withBackground,exportWithDarkMode:!!A.withTheme&&"light"!=(null===(n=e.appState)||void 0===n?void 0:n.theme)},e.appState),files:e.files,exportPadding:t,mimeType:"image/png",getDimensions:(e,A)=>({width:e*i,height:A*i,scale:i})})}catch(e){return errorlog({where:"Utils.getPNG",error:e}),null}},getQuickImagePreview=async(e,A,t)=>{if(!e.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(A,t),n=e.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian_module.TFile?"png"===t?await e.app.vault.readBinary(n):await e.app.vault.read(n):null},embedFontsInSVG=(e,A)=>{const t=null!=e.querySelector("text[font-family^='Virgil']"),i=null!=e.querySelector("text[font-family^='Cascadia']"),n=null!=e.querySelector("text[font-family^='LocalFont']"),a=e.querySelector("defs");return a&&(i||t||n)&&(a.innerHTML=``),e},getImageSize=async e=>new Promise(((A,t)=>{const i=new Image;i.onload=()=>{A({height:i.naturalHeight,width:i.naturalWidth})},i.onerror=t,i.src=e})),scaleLoadedImage=(e,A)=>{let t=!1;if(!A||!e)return{dirty:t,scene:e};for(const i of A){const[A,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;e.elements.filter((e=>"image"===e.type&&e.fileId===i.id)).forEach((e=>{const[r,s]=[e.width,e.height];if(i.shouldScale){if(a!=r/s){t=!0;const i=Math.sqrt(r*s*n/A),a=Math.sqrt(r*s*A/n);e.height=i,e.width=a,e.y+=(s-i)/2,e.x+=(r-a)/2}}else r===A&&s===n||(t=!0,e.height=n,e.width=A,e.y+=(s-n)/2,e.x+=(r-A)/2)}))}return{dirty:t,scene:e}},setDocLeftHandedMode=(e,A)=>{const t=A.createElement("style");t.id="excalidraw-left-handed",t.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=A.getElementById(t.id);i&&A.head.removeChild(i),e&&A.head.appendChild(t)},setLeftHandedMode=e=>{const A=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;i&&(A.has(i)||(A.add(i),setDocLeftHandedMode(e,i)))}))},getLinkParts=(e,A)=>{var t;const i=e.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:e,path:A&&""===i[1]?A.path:i[1],isBlockRef:"^"===i[2],ref:null===(t=i[3])||void 0===t?void 0:t.replaceAll(REG_BLOCK_REF_CLEAN,""),width:i[4]?parseInt(i[4]):void 0,height:i[5]?parseInt(i[5]):void 0}},compress=e=>lzString.exports.compressToBase64(e).replace(/(.{64})/g,"$1\n\n"),decompress=e=>lzString.exports.decompressFromBase64(e.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(e,A,t)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return t.frontmatter["excalidraw-export-dark"]?"dark":"light"}return e.settings.exportWithTheme?t:"light"},hasExportBackground=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!t.frontmatter["excalidraw-export-transparent"]}return e.settings.exportWithBackground},getExportPadding=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if(!(null==t?void 0:t.frontmatter))return e.settings.exportPaddingSVG;if(null!=t.frontmatter["excalidraw-export-padding"]){const e=parseInt(t.frontmatter["excalidraw-export-padding"]);if(!isNaN(e))return e}if(null!=t.frontmatter["excalidraw-export-svgpadding"]){const e=parseInt(t.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(e))return e}}return e.settings.exportPaddingSVG},getPNGScale=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-pngscale"]){const e=parseFloat(t.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(e)&&e>0)return e}}return e.settings.pngExportScale},isVersionNewerThanOther=(e,A)=>{const t=e.match(/(\d*)\.(\d*)\.(\d*)/),i=A.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(t&&4===t.length&&i&&4===i.length&&!(isNaN(parseInt(t[1]))||isNaN(parseInt(t[2]))||isNaN(parseInt(t[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(t[1])>parseInt(i[1])||parseInt(t[1])>=parseInt(i[1])&&parseInt(t[2])>parseInt(i[2])||parseInt(t[1])>=parseInt(i[1])&&parseInt(t[2])>=parseInt(i[2])&&parseInt(t[3])>parseInt(i[3])))},getEmbeddedFilenameParts=e=>{const A=null==e?void 0:e.match(/([^#\^]*)((#\^)(group=|area=|taskbone)?([^\|]*)|(#)(group=|area=|taskbone)?([^\^\|]*))(.*)/);return A?{filepath:A[1],hasBlockref:Boolean(A[3]),hasGroupref:"group="===A[4]||"group="===A[7],hasTaskbone:"taskbone"===A[4]||"taskbone"===A[7],hasArearef:"area="===A[4]||"area="===A[7],blockref:A[5],hasSectionref:Boolean(A[6]),sectionref:A[8],linkpartReference:A[2],linkpartAlias:A[9]}:{filepath:e,hasBlockref:!1,hasGroupref:!1,hasTaskbone:!1,hasArearef:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},fragWithHTML=e=>createFragment((A=>A.createDiv().innerHTML=e)),errorlog=e=>{console.error(Object.assign({plugin:"Excalidraw"},e))},sleep$1=async e=>new Promise((A=>setTimeout(A,e))),log=console.log.bind(window.console);console.log.bind(window.console);const getContainerElement=(e,A)=>{var t;return e&&e.containerId&&null!==(t=A.elements.filter((A=>A.id===e.containerId))[0])&&void 0!==t?t:null},getParentOfClass=(e,A)=>{var t;let i=e.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(A);)i=i.parentElement;return(null===(t=null==i?void 0:i.classList)||void 0===t?void 0:t.contains(A))?i:null},getNewOrAdjacentLeaf=(e,A)=>{const t=A.id,i=app.workspace.getLayout(),n=e=>e.children.filter((e=>"leaf"!==e.type)).map((e=>n(e))).flat().concat(e.children.filter((e=>"leaf"===e.type)).map((e=>e.id))),a=n(i.main),r=i.main&&a.contains(t)?"main":i.floating&&n(i.floating).contains(t)?"popout":i.left&&n(i.left).contains(t)?"left":i.right&&n(i.right).contains(t)?"right":"hover",s=()=>{var e;let t=app.workspace.getMostRecentLeaf();return t&&t!==A&&(null===(e=t.view)||void 0===e?void 0:e.containerEl.ownerDocument)===document||(t=null,a.forEach((e=>{var i;const n=app.workspace.getLeafById(e);!t&&(null===(i=n.view)||void 0===i?void 0:i.navigation)&&A!==n&&(t=n)}))),t};if(e.settings.openInMainWorkspace||["main","left","right"].contains(r)){if(!e.settings.openInAdjacentPane){if("main"===r)return app.workspace.createLeafBySplit(A);const e=s();return e?"empty"===e.view.getViewType()?e:app.workspace.createLeafBySplit(e):app.workspace.getLeaf(!0)}const t=s();return null!=t?t:app.workspace.getLeaf(!0)}if(!e.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(A);if("hover"===r){const t=new Set;return app.workspace.iterateAllLeaves((e=>{e!==A&&A.containerEl.parentElement===e.containerEl.parentElement&&t.add(e)})),0===t.size?e.app.workspace.createLeafBySplit(A):Array.from(t)[0]}if("popout"===r){const e=new Set;return app.workspace.iterateAllLeaves((t=>{t!==A&&t.view.navigation&&t.view.containerEl.ownerDocument===A.view.containerEl.ownerDocument&&e.add(t)})),0===e.size?app.workspace.createLeafBySplit(A):Array.from(e)[0]}return e.app.workspace.createLeafBySplit(A)},getAttachmentsFolderAndFilePath=async(e,A,t)=>{let i=e.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const e=`${splitFolderAndFilename(A).folderpath}/`;i=obsidian_module.normalizePath(e+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(i),{folder:i,filepath:obsidian_module.normalizePath(""===i?t:`${i}/${t}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark");var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install this script",UPDATE_SCRIPT:"An update is available - Click to install",CHECKING_SCRIPT:"Checking if a newer version is available - Click to reinstall now",UNABLETOCHECK_SCRIPT:"Update check was unsuccessful - Click to reinstall now",UPTODATE_SCRIPT:"Script is installed and up to date - Click to reinstall now",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"New Excalidraw drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open an existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open an existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Transclude (embed) a drawing",TRANSCLUDE_MOST_RECENT:"Transclude (embed) the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create a new drawing - IN A NEW PANE",NEW_IN_ACTIVE_PANE:"Create a new drawing - IN THE CURRENT ACTIVE PANE",NEW_IN_POPOUT_WINDOW:"Create a new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create a new drawing - IN A NEW PANE - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create a new drawing - IN A POPOUT WINDOW - and embed into active document",EXPORT_SVG:"Save as SVG next to the current file",EXPORT_PNG:"Save as PNG next to the current file",EXPORT_SVG_WITH_SCENE:"Save as SVG with embedded Excalidraw Scene next to the current file",EXPORT_PNG_WITH_SCENE:"Save as PNG with embedded Excalidraw Scene next to the current file",TOGGLE_LOCK:"Toggle Text Element edit RAW/PREVIEW",DELETE_FILE:"Delete selected Image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:"Copy markdown link for selected element to clipboard. CTRL/CMD+Click to copy group link. SHIFT+click to copy an area link.",INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image or Excalidraw drawing from your vault",IMPORT_SVG:"Import an SVG file as Excalidraw strokes (limited SVG support, TEXT currently not supported)",INSERT_MD:"Insert markdown file from vault",INSERT_LATEX:"Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!})",ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",RUN_OCR:"OCR: Grab text from freedraw scribble and pictures to clipboard",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",RESET_IMG_TO_100:"Set selected image element size to 100% of original",TEMPORARY_DISABLE_AUTOSAVE:"Disable autosave until next time Obsidian starts (only set this if you know what you are doing)",TEMPORARY_ENABLE_AUTOSAVE:"Enable autosave",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",SAVE_AS_PNG:"Save as PNG into Vault (CTRL/CMD+CLICK to export; SHIFT to embed scene)",SAVE_AS_SVG:"Save as SVG into Vault (CTRL/CMD+CLICK to export; SHIFT to embed scene)",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a an ImageElement, or select a TextElement that contains an internal or external link.\nSHIFT CLICK this button to open the link in a new pane.\nCTRL/CMD CLICK the Image or TextElement on the canvas has the same effect!",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"File does not exist. Hold down ALT (or ALT+SHIFT) and CLICK link button to create a new file.",FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only effects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only effects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is available.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: Use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and its name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder (CASE SeNSitiVE!)",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",SAVING_HEAD:"Saving",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be effected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_INTERVAL_DESKTOP_NAME:"Interval for autosave on Desktop",AUTOSAVE_INTERVAL_DESKTOP_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. clicking on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly either by killing the Obsidian process, or clicking to close Obsidian altogether.",AUTOSAVE_INTERVAL_MOBILE_NAME:"Interval for autosave on Mobile",AUTOSAVE_INTERVAL_MOBILE_DESC:"I recommend a more frequent interval for Mobiles. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. tapping on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly (i.e. swiping it away). Also note, that when you switch apps on a Mobile device, sometimes Android and iOS closes Obsidian in the background to save system resources. In such a case Excalidraw will not be able to save the latest changes.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Effects filename only when embedding into a markdown document. This text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not effect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF: Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not effected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal, view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_ONOPEN_NAME:"Zoom to fit on file open",ZOOM_TO_FIT_ONOPEN_DESC:"Zoom to fit drawing when the drawing is first opened
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:"CTRL/CMD + CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].",ADJACENT_PANE_NAME:"Open in adjacent pane",ADJACENT_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing adjacent pane, and try to open the link there. Excalidraw will look for the adjacent pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.",MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. ",LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkpox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:"Hover preview without CTRL/CMD key",HOVERPREVIEW_DESC:"Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the CTRL/CMD key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the CTRL/CMD key while hovering the link.",LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:"CTRL/CMD + CLICK on text with [[links]] or [](links) to open them",LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readability of quotes in text only transclusions
Toggle ON: Remove leading '> '
Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images CTRL(Shift on Mac) drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This effects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:"The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (CTRL+SHIFT+i) and type in the following command: \"ExcalidrawAutomate.mostRecentMarkdownSVG\". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: \"excalidraw-css: css_file_in_vault|css-snippet\".",EMBED_HEAD:"Embed & Export",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"Toggle ON: Embed drawing as an SVG image into the markdown preview.
Toggle OFF: Embed drawing as a PNG image. Note, that some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed SVG or PNG as Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not effect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Forth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",TASKBONE_HEAD:"Taskbone Optical Character Recogntion",TASKBONE_DESC:"This is an experimental integration of optical character recognition into Excalidraw. Please note, that taskbone is an independent external service not provided by Excalidraw, nor the Excalidraw-Obsidian plugin project. The OCR service will grab legible text from freedraw lines and embedded pictures on your canvas and place the recognized text in the frontmatter of your drawing as well as onto clipboard. Having the text in the frontmatter will enable you to search in Obsidian for the text contents of these. Note, that the process of extracting the text from the image is not done locally, but via an online API. The taskbone service stores the image on its servers only as long as necessary for the text extraction. However, if this is a dealbreaker, then please don't use this feature.",TASKBONE_ENABLE_NAME:"Enable Taskbone",TASKBONE_ENABLE_DESC:"By enabling this service your agree to the Taskbone Terms and Conditaions and the Privacy Policy.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone offers a free service with a reasonable number of scans per month. If you want to use this feature more frequently, or you want to supoprt the developer of Taskbone (as you can imagine, there is no such thing as 'free', providing this awesome OCR service costs some money to the developer of Taskbone), you can purchase a paid API key from taskbone.com. In case you have purchased a key, simply overwrite this auto generated free-tier API-key with your paid key.",SELECT_FILE:"Select a file then press enter.",SELECT_FILE_WITH_OPTION_TO_SCALE:"Select a file then press ENTER, or ALT+ENTER to insert at 100% scale.",NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the image or drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode",OPEN_LINK_CLICK:"Navigate to selected element link",OPEN_LINK_PROPS:"Open markdown-embed properties or open link in new window"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"发现可用更新 - 点击安装",CHECKING_SCRIPT:"检查脚本更新 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"已安装最新脚本 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图 - 于新面板",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图 - 于当前面板",TRANSCLUDE:"嵌入绘图(形如 ![[drawing]])到当前文档",TRANSCLUDE_MOST_RECENT:"嵌入最近编辑过的绘图(形如 ![[drawing]])到当前文档",TOGGLE_LEFTHANDED_MODE:"切换为左手模式",NEW_IN_NEW_PANE:"新建绘图 - 于新面板",NEW_IN_ACTIVE_PANE:"新建绘图 - 于当前面板",NEW_IN_POPOUT_WINDOW:"新建绘图 - 于新窗口",NEW_IN_NEW_PANE_EMBED:"新建绘图 - 于新面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图 - 于当前面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_POPOUT_WINDOW_EMBED:"新建绘图 - 于新窗口 - 并将其嵌入(形如 ![[drawing]])到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",TOGGLE_LOCK:"切换文本元素为原文模式(RAW)/预览模式(PREVIEW)",DELETE_FILE:"从库中删除所选图像(或 MD-Embed)的源文件",INSERT_LINK_TO_ELEMENT:"复制所选元素的内部链接。按住 CTRL/CMD 可复制元素所在分组的内部链接。按住 SHIFT 可复制元素周围区域的内部链接。",INSERT_LINK_TO_ELEMENT_GROUP:"复制所选元素所在分组的内部链接(形如 [[file#^group=elementID]])",INSERT_LINK_TO_ELEMENT_AREA:"复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])",INSERT_LINK_TO_ELEMENT_NORMAL:"复制所选元素的引用链接(形如 [[file#^elementID]])",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入文件的内部链接(形如 [[drawing]])到当前绘图",INSERT_IMAGE:"插入图像(以图像形式嵌入)到当前绘图",INSERT_MD:"插入 Markdown 文档(以图像形式嵌入)到当前绘图",INSERT_LATEX:"插入 LaTeX 公式到当前绘图",ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的最新发行版本说明",TRAY_MODE:"切换绘图工具属性页为面板模式(Panel)/托盘模式(Tray)",SEARCH:"搜索文本",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 自动化脚本",OPEN_AS_MD:"打开为 Markdown 文件",SAVE_AS_PNG:"导出 PNG 到当前目录(按住 CTRL/CMD 设定导出路径)",SAVE_AS_SVG:"导出 SVG 到当前目录(按住 CTRL/CMD 设定导出路径)",OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。\n按住 SHIFT 并点击此按钮可在新面板中打开链接。\n您也可以直接在画布中按住 CTRL/CMD 并点击图形或文本元素来打开链接。",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"文件不存在。按住 ALT(或 ALT + SHIFT)并点击链接来创建新文件。",FORCE_SAVE:"立刻保存该绘图(并更新嵌入了该绘图的面板)。\n详见插件设置中的定期保存选项",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件以兼容模式打开。转换为新格式以获得完整的插件功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",NEWVERSION_NOTIFICATION_NAME:"通知插件更新",NEWVERSION_NOTIFICATION_DESC:"开启:当本插件存在可用更新时,显示通知。
关闭:您需要手动检查本插件的更新(设置 - 第三方插件 - 检查更新)。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图”系列命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。
关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_NAME:"定期保存",AUTOSAVE_DESC:"定期保存当前绘图。此功能专为移动设备设计 —— 在桌面端,当您关闭 Excalidraw 或 Obsidian,或者移动焦点到其他面板的时候,软件是会自动保存的;但是在手机或平板上通过滑动手势退出 Obsidian 时,可能无法顺利触发自动保存。因此我添加了定期保存功能作为弥补。",AUTOSAVE_INTERVAL_NAME:"定期保存的时间间隔",AUTOSAVE_INTERVAL_DESC:"每隔多长时间执行一次保存。如果当前绘图没有发生改变,将不会触发保存。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"“新建绘图”系列命令创建的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图并嵌入到当前文档”系列命令创建的文件名形如:",FILENAME_PREFIX_NAME:"“新建绘图”系列命令创建的文件名前缀",FILENAME_PREFIX_DESC:"执行“新建绘图”系列命令时,创建的绘图文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"执行“新建绘图并嵌入到当前文档”系列命令时,创建的绘图文件名是否以当前文档名作为前缀?
开启:
关闭:否",FILENAME_POSTFIX_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名的中间部分",FILENAME_POSTFIX_DESC:"介于文件名前缀和日期时间之间的文本。仅对“新建绘图并嵌入到当前文档”系列命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名里的日期时间",FILENAME_DATE_DESC:"文件名的最后一部分。允许留空。",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名。
关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只在托盘模式下生效。若开启此项,则托盘(绘图工具属性页)将位于右侧。
开启:左手模式。
关闭:右手模式。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。
开启:跟随 Obsidian 主题风格。
关闭:跟随模板主题风格。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。
开启:匹配 Obsidian 主题风格。
关闭:采用上次保存时的主题风格。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,已打开的 Excalidraw 面板的主题会随之改变。
开启:跟随主题变化。
关闭:不跟随主题变化。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式(Normal)/禅模式(Zen)/阅读模式(View)。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",DEFAULT_PEN_MODE_NAME:"触控笔模式(Pen mode)",DEFAULT_PEN_MODE_DESC:"打开绘图时,是否自动开启触控笔模式?",ZOOM_TO_FIT_NAME:"自动缩放以适应面板调整",ZOOM_TO_FIT_DESC:"调整面板大小时,自适应地缩放画布
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 以文本形式嵌入到绘图中的文档(Transclusion)",LINKS_DESC:"按住 CTRL/CMD 并点击包含 [[链接]] 的文本元素可以打开其中的链接。
如果所选文本元素包含多个 [[有效的内部链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开链接。
链接的源文件被重命名时,绘图中相应的 [[内部链接]] 也会同步更新。若您不愿绘图中的链接外观因此而变化,可使用 [[内部链接|别名]]。",ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击绘图里的内部链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开该链接。如果找不到,再在新面板中打开。",MAINWORKSPACE_PANE_NAME:"在主工作区中打开",MAINWORKSPACE_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击绘图里的内部链接时,插件默认会在当前窗口的新面板中打开该链接。
若开启此项,Excalidraw 会在主工作区的面板中打开该链接。",LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览模式时,在内部链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"内部链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"外部链接的前缀",URL_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含外部链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',PARSE_TODO_NAME:"解析任务列表(Todo)",PARSE_TODO_DESC:"将文本元素中的 - [ ]- [x] 前缀显示为方框。",TODO_NAME:"未完成的 Todo 项目",TODO_DESC:"未完成的 Todo 项目的符号",DONE_NAME:"已完成的 Todo 项目",DONE_DESC:"已完成的 Todo 项目的符号",HOVERPREVIEW_NAME:"鼠标悬停预览内部链接",HOVERPREVIEW_DESC:"开启:在 Excalidraw 阅读模式(View)下,鼠标悬停在 [[内部链接]] 上即可预览;而在普通模式(Normal)下, 鼠标悬停在内部链接右上角的蓝色标识上即可预览。
关闭:鼠标悬停在 [[内部链接]] 上,并且按住 CTRL/CMD 时进行预览。",LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:"按住 CTRL/CMD 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接",LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"Transclusion 的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion 的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Transclusion 的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[内部链接]]![](内部链接) 的形式将文档以文本形式嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:"您还可以将 Markdown 文档以图像形式(而非文本形式)嵌入到绘图中。方法是按住 CTRL/CMD 并从文件管理器中把文档拖入绘图,或者执行“以图像形式嵌入”系列命令。",MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 的高度取决于 Markdown 文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_REUSE_EXPORTED_IMAGE_NAME:"将之前已导出的图像作为 Embed 的预览图(如果存在的话)",EMBED_REUSE_EXPORTED_IMAGE_DESC:"该选项与“自动导出 SVG/PNG 副本”选项配合使用。如果存在文件名相匹配的 SVG/PNG 副本,则将其作为 Embed 的预览图,而不再重新生成预览图。
该选项能够提高性能,尤其是当 Embed 中含有大量图像或 MD-Embed 时。但是,该选项也可能导致预览图无法立即响应你最新的修改,或者你对 Obsidian 主题风格的改变。
该选项仅作用于嵌入到文档中的绘图。由于种种原因,该技术无法用于加快绘图文件的打开速度。详见此说明。",EMBED_PREVIEW_SVG_NAME:"生成 SVG 格式的 Embed 预览图",EMBED_PREVIEW_SVG_DESC:"开启:在 Markdown 预览模式下,为 Embed 生成 SVG 格式的预览图。
关闭:为 Embed 生成 PNG 格式的预览图。注意:PNG 格式预览图不支持某些 绘图元素的块引用特性。",PREVIEW_MATCH_OBSIDIAN_NAME:"Embed 预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,Embed 的预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"Embed 预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时浮现的预览图。
您可为某个要嵌入到文档中的绘图(Embed)单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”系列命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”系列命令时,要嵌入绘图文件本身,还是嵌入其 PNG 或 SVG 副本。
如果您想选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 副本”或“自动导出 SVG 副本”开关。
如果您选择了 PNG 或 SVG 副本,当副本不存在时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 也就是说,该选项不会自动帮您生成 PNG/SVG 副本,而只会引用已有的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的内部链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出的 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_PADDING_NAME:"导出的图像的空白边距",EXPORT_PADDING_DESC:"导出的 SVG/PNG 图像四周的空白边距(单位:像素)。
增加该值,可以避免在导出图像时,靠近图像边缘的图形被裁掉。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-export-padding: 5 的键值对。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 SVG/PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-autoexport: none/both/svg/png的键值对",EXPORT_PNG_NAME:"自动导出 PNG 副本",EXPORT_PNG_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.PNG。",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"同时导出黑暗和明亮风格的图像",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"若开启,Excalidraw 将导出两个文件:filename.dark.png(或 filename.dark.svg)和 filename.light.png(或 filename.light.svg)。
该选项可作用于“自动导出 SVG 副本”、“自动导出 PNG 副本”,以及其他的手动的导出命令。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 旧格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"新旧格式绘图文件的内容保持同步",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",MATHJAX_NAME:"MathJax (LaTeX) 的 javascript 库服务器",MATHJAX_DESC:"如果您在绘图中使用 LaTeX,插件需要从服务器获取并加载一个 javascript 库。如果您的网络无法访问某些库服务器,可以尝试通过此选项更换库服务器。更改此选项后,您可能需要重启 Obsidian 来使其生效。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启字段建议",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",SELECT_FILE:"选择一个文件后按回车。",NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian_module.moment.locale()];function t$d(e){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian_module.moment.locale()}),locale&&locale[e]||en[e]}var html2canvas$1={exports:{}}; +/*! + * html2canvas 1.4.0 + * Copyright (c) 2022 Niklas von Hertzen + * Released under MIT License + */html2canvas$1.exports=function(){ +/*! ***************************************************************************** + 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. + ***************************************************************************** */ +var e=function(A,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,A){e.__proto__=A}||function(e,A){for(var t in A)Object.prototype.hasOwnProperty.call(A,t)&&(e[t]=A[t])},e(A,t)};function A(A,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=A}e(A,t),A.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var t=function(){return t=Object.assign||function(e){for(var A,t=1,i=arguments.length;t0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&t>10),r%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(e<55296||e>56319&&e<=65535)return A=((A=this.index[e>>5])<<2)+(31&e),this.data[A];if(e<=65535)return A=((A=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[A];if(e>11),A=this.index[A],A+=e>>5&63,A=((A=this.index[A])<<2)+(31&e),this.data[A];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),p=10,w=13,m=15,f=17,B=18,E=19,b=20,C=21,v=22,y=24,F=25,x=26,S=27,T=28,Q=30,I=32,U=33,k=34,M=35,L=37,O=38,N=39,D=40,H=42,R=[9001,65288],P="×",V="÷",K=function(e){var A,t,i,n=function(e){var A,t,i,n,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(A=0;A>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),a=Array.isArray(n)?function(e){for(var A=e.length,t=[],i=0;i0;){var r=i[--a];if(Array.isArray(e)?-1!==e.indexOf(r):e===r)for(var s=t;s<=i.length;){var o;if((o=i[++s])===A)return!0;if(o!==p)break}if(r!==p)break}return!1},q=function(e,A){for(var t=e;t>=0;){var i=A[t];if(i!==p)return i;t--}return 0},_=function(e,A,t,i,n){if(0===t[i])return P;var a=i-1;if(Array.isArray(n)&&!0===n[a])return P;var r=a-1,s=a+1,o=A[a],l=r>=0?A[r]:0,c=A[s];if(2===o&&3===c)return P;if(-1!==W.indexOf(o))return"!";if(-1!==W.indexOf(c))return P;if(-1!==z.indexOf(c))return P;if(8===q(a,A))return V;if(11===K.get(e[a]))return P;if((o===I||o===U)&&11===K.get(e[s]))return P;if(7===o||7===c)return P;if(9===o)return P;if(-1===[p,w,m].indexOf(o)&&9===c)return P;if(-1!==[f,B,E,y,T].indexOf(c))return P;if(q(a,A)===v)return P;if(Z(23,v,a,A))return P;if(Z([f,B],C,a,A))return P;if(Z(12,12,a,A))return P;if(o===p)return V;if(23===o||23===c)return P;if(16===c||16===o)return V;if(-1!==[w,m,C].indexOf(c)||14===o)return P;if(36===l&&-1!==J.indexOf(o))return P;if(o===T&&36===c)return P;if(c===b)return P;if(-1!==G.indexOf(c)&&o===F||-1!==G.indexOf(o)&&c===F)return P;if(o===S&&-1!==[L,I,U].indexOf(c)||-1!==[L,I,U].indexOf(o)&&c===x)return P;if(-1!==G.indexOf(o)&&-1!==X.indexOf(c)||-1!==X.indexOf(o)&&-1!==G.indexOf(c))return P;if(-1!==[S,x].indexOf(o)&&(c===F||-1!==[v,m].indexOf(c)&&A[s+1]===F)||-1!==[v,m].indexOf(o)&&c===F||o===F&&-1!==[F,T,y].indexOf(c))return P;if(-1!==[F,T,y,f,B].indexOf(c))for(var d=a;d>=0;){if((h=A[d])===F)return P;if(-1===[T,y].indexOf(h))break;d--}if(-1!==[S,x].indexOf(c))for(d=-1!==[f,B].indexOf(o)?r:a;d>=0;){var h;if((h=A[d])===F)return P;if(-1===[T,y].indexOf(h))break;d--}if(O===o&&-1!==[O,N,k,M].indexOf(c)||-1!==[N,k].indexOf(o)&&-1!==[N,D].indexOf(c)||-1!==[D,M].indexOf(o)&&c===D)return P;if(-1!==j.indexOf(o)&&-1!==[b,x].indexOf(c)||-1!==j.indexOf(c)&&o===S)return P;if(-1!==G.indexOf(o)&&-1!==G.indexOf(c))return P;if(o===y&&-1!==G.indexOf(c))return P;if(-1!==G.concat(F).indexOf(o)&&c===v&&-1===R.indexOf(e[s])||-1!==G.concat(F).indexOf(c)&&o===B)return P;if(41===o&&41===c){for(var u=t[a],g=1;u>0&&41===A[--u];)g++;if(g%2!=0)return P}return o===I&&c===U?P:V},$=function(e,A){A||(A={lineBreak:"normal",wordBreak:"normal"});var t=function(e,A){void 0===A&&(A="strict");var t=[],i=[],n=[];return e.forEach((function(e,a){var r=K.get(e);if(r>50?(n.push(!0),r-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(A)&&-1!==[8208,8211,12316,12448].indexOf(e))return i.push(a),t.push(16);if(4===r||11===r){if(0===a)return i.push(a),t.push(Q);var s=t[a-1];return-1===Y.indexOf(s)?(i.push(i[a-1]),t.push(s)):(i.push(a),t.push(Q))}return i.push(a),31===r?t.push("strict"===A?C:L):r===H||29===r?t.push(Q):43===r?e>=131072&&e<=196605||e>=196608&&e<=262141?t.push(L):t.push(Q):void t.push(r)})),[i,t,n]}(e,A.lineBreak),i=t[0],n=t[1],a=t[2];"break-all"!==A.wordBreak&&"break-word"!==A.wordBreak||(n=n.map((function(e){return-1!==[F,Q,H].indexOf(e)?L:e})));var r="keep-all"===A.wordBreak?a.map((function(A,t){return A&&e[t]>=19968&&e[t]<=40959})):void 0;return[i,n,r]},ee=function(){function e(e,A,t,i){this.codePoints=e,this.required="!"===A,this.start=t,this.end=i}return e.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Ae=45,te=43,ie=-1,ne=function(e){return e>=48&&e<=57},ae=function(e){return ne(e)||e>=65&&e<=70||e>=97&&e<=102},re=function(e){return 10===e||9===e||32===e},se=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},oe=function(e){return se(e)||ne(e)||e===Ae},le=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},ce=function(e,A){return 92===e&&10!==A},de=function(e,A,t){return e===Ae?se(A)||ce(A,t):!!se(e)||!(92!==e||!ce(e,A))},he=function(e,A,t){return e===te||e===Ae?!!ne(A)||46===A&&ne(t):ne(46===e?A:e)},ue=function(e){var A=0,t=1;e[A]!==te&&e[A]!==Ae||(e[A]===Ae&&(t=-1),A++);for(var i=[];ne(e[A]);)i.push(e[A++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===e[A]&&A++;for(var a=[];ne(e[A]);)a.push(e[A++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==e[A]&&101!==e[A]||A++;var o=1;e[A]!==te&&e[A]!==Ae||(e[A]===Ae&&(o=-1),A++);for(var c=[];ne(e[A]);)c.push(e[A++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return t*(n+s*Math.pow(10,-r))*Math.pow(10,o*d)},ge={type:2},pe={type:3},we={type:4},me={type:13},fe={type:8},Be={type:21},Ee={type:9},be={type:10},Ce={type:11},ve={type:12},ye={type:14},Fe={type:23},xe={type:1},Se={type:25},Te={type:24},Qe={type:26},Ie={type:27},Ue={type:28},ke={type:29},Me={type:31},Le={type:32},Oe=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(o(e))},e.prototype.read=function(){for(var e=[],A=this.consumeToken();A!==Le;)e.push(A),A=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var A=this.peekCodePoint(0),t=this.peekCodePoint(1),i=this.peekCodePoint(2);if(oe(A)||ce(t,i)){var n=de(A,t,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),me;break;case 39:return this.consumeStringToken(39);case 40:return ge;case 41:return pe;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ye;break;case te:if(he(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return we;case Ae:var a=e,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(he(a,r,s))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(de(a,r,s))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(r===Ae&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),Te;break;case 46:if(he(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===ie)return this.consumeToken()}break;case 58:return Qe;case 59:return Ie;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===Ae&&this.peekCodePoint(2)===Ae)return this.consumeCodePoint(),this.consumeCodePoint(),Se;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(de(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return Ue;case 92:if(ce(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return ke;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),fe;break;case 123:return Ce;case 125:return ve;case 117:case 85:var u=this.peekCodePoint(0),g=this.peekCodePoint(1);return u!==te||!ae(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ee;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Be;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),be;break;case ie:return Le}return re(e)?(this.consumeWhiteSpace(),Me):ne(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):se(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:l(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],A=this.consumeCodePoint();ae(A)&&e.length<6;)e.push(A),A=this.consumeCodePoint();for(var t=!1;63===A&&e.length<6;)e.push(A),A=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(l.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(l.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var i=parseInt(l.apply(void 0,e),16);if(this.peekCodePoint(0)===Ae&&ae(this.peekCodePoint(1))){this.consumeCodePoint(),A=this.consumeCodePoint();for(var n=[];ae(A)&&n.length<6;)n.push(A),A=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===ie)return{type:22,value:""};var A=this.peekCodePoint(0);if(39===A||34===A){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===ie||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),Fe)}for(;;){var i=this.consumeCodePoint();if(i===ie||41===i)return{type:22,value:l.apply(void 0,e)};if(re(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===ie||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Fe);if(34===i||39===i||40===i||le(i))return this.consumeBadUrlRemnants(),Fe;if(92===i){if(!ce(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Fe;e.push(this.consumeEscapedCodePoint())}else e.push(i)}},e.prototype.consumeWhiteSpace=function(){for(;re(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===ie)return;ce(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var A="";e>0;){var t=Math.min(5e4,e);A+=l.apply(void 0,this._value.splice(0,t)),e-=t}return this._value.shift(),A},e.prototype.consumeStringToken=function(e){for(var A="",t=0;;){var i=this._value[t];if(i===ie||void 0===i||i===e)return{type:0,value:A+=this.consumeStringSlice(t)};if(10===i)return this._value.splice(0,t),xe;if(92===i){var n=this._value[t+1];n!==ie&&void 0!==n&&(10===n?(A+=this.consumeStringSlice(t),t=-1,this._value.shift()):ce(i,n)&&(A+=this.consumeStringSlice(t),A+=l(this.consumeEscapedCodePoint()),t=-1))}t++}},e.prototype.consumeNumber=function(){var e=[],A=4,t=this.peekCodePoint(0);for(t!==te&&t!==Ae||e.push(this.consumeCodePoint());ne(this.peekCodePoint(0));)e.push(this.consumeCodePoint());t=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===t&&ne(i))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),A=8;ne(this.peekCodePoint(0));)e.push(this.consumeCodePoint());t=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((i===te||i===Ae)&&ne(n)||ne(i)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),A=8;ne(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[ue(e),A]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),A=e[0],t=e[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return de(i,n,a)?{type:15,number:A,flags:t,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:A,flags:t}):{type:17,number:A,flags:t}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(ae(e)){for(var A=l(e);ae(this.peekCodePoint(0))&&A.length<6;)A+=l(this.consumeCodePoint());re(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(A,16);return 0===t||function(e){return e>=55296&&e<=57343}(t)||t>1114111?65533:t}return e===ie?65533:e},e.prototype.consumeName=function(){for(var e="";;){var A=this.consumeCodePoint();if(oe(A))e+=l(A);else{if(!ce(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),e;e+=l(this.consumeEscapedCodePoint())}}},e}(),Ne=function(){function e(e){this._tokens=e}return e.create=function(A){var t=new Oe;return t.write(A),new e(t.read())},e.parseValue=function(A){return e.create(A).parseComponentValue()},e.parseValues=function(A){return e.create(A).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var A=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return A;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var A=this.consumeComponentValue();if(32===A.type)return e;e.push(A),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var A={type:e,values:[]},t=this.consumeToken();;){if(32===t.type||ze(t,e))return A;this.reconsumeToken(t),A.values.push(this.consumeComponentValue()),t=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var A={name:e.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return A;this.reconsumeToken(t),A.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Le:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),De=function(e){return 15===e.type},He=function(e){return 17===e.type},Re=function(e){return 20===e.type},Pe=function(e){return 0===e.type},Ve=function(e,A){return Re(e)&&e.value===A},Ke=function(e){return 31!==e.type},Ge=function(e){return 31!==e.type&&4!==e.type},We=function(e){var A=[],t=[];return e.forEach((function(e){if(4===e.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return A.push(t),void(t=[])}31!==e.type&&t.push(e)})),t.length&&A.push(t),A},ze=function(e,A){return 11===A&&12===e.type||28===A&&29===e.type||2===A&&3===e.type},Xe=function(e){return 17===e.type||15===e.type},Ye=function(e){return 16===e.type||Xe(e)},je=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},Je={type:17,number:0,flags:4},Ze={type:16,number:50,flags:4},qe={type:16,number:100,flags:4},_e=function(e,A,t){var i=e[0],n=e[1];return[$e(i,A),$e(void 0!==n?n:i,t)]},$e=function(e,A){if(16===e.type)return e.number/100*A;if(De(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},eA="grad",AA="turn",tA=function(e,A){if(15===A.type)switch(A.unit){case"deg":return Math.PI*A.number/180;case eA:return Math.PI/200*A.number;case"rad":return A.number;case AA:return 2*Math.PI*A.number}throw new Error("Unsupported angle type")},iA=function(e){return 15===e.type&&("deg"===e.unit||e.unit===eA||"rad"===e.unit||e.unit===AA)},nA=function(e){switch(e.filter(Re).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Je,Je];case"to top":case"bottom":return aA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Je,qe];case"to right":case"left":return aA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[qe,qe];case"to bottom":case"top":return aA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[qe,Je];case"to left":case"right":return aA(270)}return 0},aA=function(e){return Math.PI*e/180},rA=function(e,A){if(18===A.type){var t=gA[A.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+A.name+'"');return t(e,A.values)}if(5===A.type){if(3===A.value.length){var i=A.value.substring(0,1),n=A.value.substring(1,2),a=A.value.substring(2,3);return lA(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===A.value.length){i=A.value.substring(0,1),n=A.value.substring(1,2),a=A.value.substring(2,3);var r=A.value.substring(3,4);return lA(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===A.value.length)return i=A.value.substring(0,2),n=A.value.substring(2,4),a=A.value.substring(4,6),lA(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===A.value.length)return i=A.value.substring(0,2),n=A.value.substring(2,4),a=A.value.substring(4,6),r=A.value.substring(6,8),lA(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(r,16)/255)}if(20===A.type){var s=wA[A.value.toUpperCase()];if(void 0!==s)return s}return wA.TRANSPARENT},sA=function(e){return 0==(255&e)},oA=function(e){var A=255&e,t=255&e>>8,i=255&e>>16,n=255&e>>24;return A<255?"rgba("+n+","+i+","+t+","+A/255+")":"rgb("+n+","+i+","+t+")"},lA=function(e,A,t,i){return(e<<24|A<<16|t<<8|Math.round(255*i)<<0)>>>0},cA=function(e,A){if(17===e.type)return e.number;if(16===e.type){var t=3===A?1:255;return 3===A?e.number/100*t:Math.round(e.number/100*t)}return 0},dA=function(e,A){var t=A.filter(Ge);if(3===t.length){var i=t.map(cA),n=i[0],a=i[1],r=i[2];return lA(n,a,r,1)}if(4===t.length){var s=t.map(cA),o=(n=s[0],a=s[1],r=s[2],s[3]);return lA(n,a,r,o)}return 0};function hA(e,A,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(A-e)*t*6+e:t<.5?A:t<2/3?6*(A-e)*(2/3-t)+e:e}var uA=function(e,A){var t=A.filter(Ge),i=t[0],n=t[1],a=t[2],r=t[3],s=(17===i.type?aA(i.number):tA(e,i))/(2*Math.PI),o=Ye(n)?n.number/100:0,l=Ye(a)?a.number/100:0,c=void 0!==r&&Ye(r)?$e(r,1):1;if(0===o)return lA(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,u=hA(h,d,s+1/3),g=hA(h,d,s),p=hA(h,d,s-1/3);return lA(255*u,255*g,255*p,c)},gA={hsl:uA,hsla:uA,rgb:dA,rgba:dA},pA=function(e,A){return rA(e,Ne.create(A).parseComponentValue())},wA={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},mA={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,A){return A.map((function(e){if(Re(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},fA={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},BA=function(e,A){var t=rA(e,A[0]),i=A[1];return i&&Ye(i)?{color:t,stop:i}:{color:t,stop:null}},EA=function(e,A){var t=e[0],i=e[e.length-1];null===t.stop&&(t.stop=Je),null===i.stop&&(i.stop=qe);for(var n=[],a=0,r=0;ra?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(r=0;re.optimumDistance)?{optimumCorner:A,optimumDistance:s}:e}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},yA=function(e,A){var t=aA(180),i=[];return We(A).forEach((function(A,n){if(0===n){var a=A[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(t=nA(A));if(iA(a))return void(t=(tA(e,a)+aA(270))%aA(360))}var r=BA(e,A);i.push(r)})),{angle:t,stops:i,type:1}},FA="closest-side",xA="farthest-side",SA="closest-corner",TA="farthest-corner",QA="circle",IA="ellipse",UA="cover",kA="contain",MA=function(e,A){var t=0,i=3,n=[],a=[];return We(A).forEach((function(A,r){var s=!0;if(0===r?s=A.reduce((function(e,A){if(Re(A))switch(A.value){case"center":return a.push(Ze),!1;case"top":case"left":return a.push(Je),!1;case"right":case"bottom":return a.push(qe),!1}else if(Ye(A)||Xe(A))return a.push(A),!1;return e}),s):1===r&&(s=A.reduce((function(e,A){if(Re(A))switch(A.value){case QA:return t=0,!1;case IA:return t=1,!1;case kA:case FA:return i=0,!1;case xA:return i=1,!1;case SA:return i=2,!1;case UA:case TA:return i=3,!1}else if(Xe(A)||Ye(A))return Array.isArray(i)||(i=[]),i.push(A),!1;return e}),s)),s){var o=BA(e,A);n.push(o)}})),{size:i,shape:t,stops:n,position:a,type:2}},LA=function(e,A){if(22===A.type){var t={url:A.value,type:0};return e.cache.addImage(A.value),t}if(18===A.type){var i=NA[A.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+A.name+'"');return i(e,A.values)}throw new Error("Unsupported image type "+A.type)};var OA,NA={"linear-gradient":function(e,A){var t=aA(180),i=[];return We(A).forEach((function(A,n){if(0===n){var a=A[0];if(20===a.type&&"to"===a.value)return void(t=nA(A));if(iA(a))return void(t=tA(e,a))}var r=BA(e,A);i.push(r)})),{angle:t,stops:i,type:1}},"-moz-linear-gradient":yA,"-ms-linear-gradient":yA,"-o-linear-gradient":yA,"-webkit-linear-gradient":yA,"radial-gradient":function(e,A){var t=0,i=3,n=[],a=[];return We(A).forEach((function(A,r){var s=!0;if(0===r){var o=!1;s=A.reduce((function(e,A){if(o)if(Re(A))switch(A.value){case"center":return a.push(Ze),e;case"top":case"left":return a.push(Je),e;case"right":case"bottom":return a.push(qe),e}else(Ye(A)||Xe(A))&&a.push(A);else if(Re(A))switch(A.value){case QA:return t=0,!1;case IA:return t=1,!1;case"at":return o=!0,!1;case FA:return i=0,!1;case UA:case xA:return i=1,!1;case kA:case SA:return i=2,!1;case TA:return i=3,!1}else if(Xe(A)||Ye(A))return Array.isArray(i)||(i=[]),i.push(A),!1;return e}),s)}if(s){var l=BA(e,A);n.push(l)}})),{size:i,shape:t,stops:n,position:a,type:2}},"-moz-radial-gradient":MA,"-ms-radial-gradient":MA,"-o-radial-gradient":MA,"-webkit-radial-gradient":MA,"-webkit-gradient":function(e,A){var t=aA(180),i=[],n=1;return We(A).forEach((function(A,t){var a=A[0];if(0===t){if(Re(a)&&"linear"===a.value)return void(n=1);if(Re(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var r=rA(e,a.values[0]);i.push({stop:Je,color:r})}else if("to"===a.name)r=rA(e,a.values[0]),i.push({stop:qe,color:r});else if("color-stop"===a.name){var s=a.values.filter(Ge);if(2===s.length){r=rA(e,s[1]);var o=s[0];He(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===n?{angle:(t+aA(180))%aA(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},DA={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,A){if(0===A.length)return[];var t=A[0];return 20===t.type&&"none"===t.value?[]:A.filter((function(e){return Ge(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!NA[e.name])}(e)})).map((function(A){return LA(e,A)}))}},HA={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,A){return A.map((function(e){if(Re(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},RA={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,A){return We(A).map((function(e){return e.filter(Ye)})).map(je)}},PA={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,A){return We(A).map((function(e){return e.filter(Re).map((function(e){return e.value})).join(" ")})).map(VA)}},VA=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(OA||(OA={}));var KA,GA={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,A){return We(A).map((function(e){return e.filter(WA)}))}},WA=function(e){return Re(e)||Ye(e)},zA=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},XA=zA("top"),YA=zA("right"),jA=zA("bottom"),JA=zA("left"),ZA=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,A){return je(A.filter(Ye))}}},qA=ZA("top-left"),_A=ZA("top-right"),$A=ZA("bottom-right"),et=ZA("bottom-left"),At=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,A){switch(A){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tt=At("top"),it=At("right"),nt=At("bottom"),at=At("left"),rt=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,A){return De(A)?A.number:0}}},st=rt("top"),ot=rt("right"),lt=rt("bottom"),ct=rt("left"),dt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ht={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,A){return"rtl"===A?1:0}},ut={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,A){return A.filter(Re).reduce((function(e,A){return e|gt(A.value)}),0)}},gt=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},pt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,A){switch(A){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},wt={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,A){return 20===A.type&&"normal"===A.value?0:17===A.type||15===A.type?A.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(KA||(KA={}));var mt,ft={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,A){return"strict"===A?KA.STRICT:KA.NORMAL}},Bt={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=function(e,A){return Re(e)&&"normal"===e.value?1.2*A:17===e.type?A*e.number:Ye(e)?$e(e,A):A},bt={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,A){return 20===A.type&&"none"===A.value?null:LA(e,A)}},Ct={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,A){return"inside"===A?0:1}},vt={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,A){switch(A){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},yt=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},Ft=yt("top"),xt=yt("right"),St=yt("bottom"),Tt=yt("left"),Qt={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,A){return A.filter(Re).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},It={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,A){return"break-word"===A?"break-word":"normal"}},Ut=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},kt=Ut("top"),Mt=Ut("right"),Lt=Ut("bottom"),Ot=Ut("left"),Nt={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,A){switch(A){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},Dt={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,A){switch(A){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Ht={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,A){return 1===A.length&&Ve(A[0],"none")?[]:We(A).map((function(A){for(var t={color:wA.TRANSPARENT,offsetX:Je,offsetY:Je,blur:Je},i=0,n=0;n1?1:0],this.overflowWrap=mi(e,It,A.overflowWrap),this.paddingTop=mi(e,kt,A.paddingTop),this.paddingRight=mi(e,Mt,A.paddingRight),this.paddingBottom=mi(e,Lt,A.paddingBottom),this.paddingLeft=mi(e,Ot,A.paddingLeft),this.paintOrder=mi(e,di,A.paintOrder),this.position=mi(e,Dt,A.position),this.textAlign=mi(e,Nt,A.textAlign),this.textDecorationColor=mi(e,Zt,null!==(t=A.textDecorationColor)&&void 0!==t?t:A.color),this.textDecorationLine=mi(e,qt,null!==(i=A.textDecorationLine)&&void 0!==i?i:A.textDecoration),this.textShadow=mi(e,Ht,A.textShadow),this.textTransform=mi(e,Rt,A.textTransform),this.transform=mi(e,Pt,A.transform),this.transformOrigin=mi(e,Wt,A.transformOrigin),this.visibility=mi(e,zt,A.visibility),this.webkitTextStrokeColor=mi(e,hi,A.webkitTextStrokeColor),this.webkitTextStrokeWidth=mi(e,ui,A.webkitTextStrokeWidth),this.wordBreak=mi(e,Xt,A.wordBreak),this.zIndex=mi(e,Yt,A.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return sA(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return ii(this.display,4)||ii(this.display,33554432)||ii(this.display,268435456)||ii(this.display,536870912)||ii(this.display,67108864)||ii(this.display,134217728)},e}(),pi=function(e,A){this.content=mi(e,ni,A.content),this.quotes=mi(e,oi,A.quotes)},wi=function(e,A){this.counterIncrement=mi(e,ai,A.counterIncrement),this.counterReset=mi(e,ri,A.counterReset)},mi=function(e,A,t){var i=new Oe,n=null!=t?t.toString():A.initialValue;i.write(n);var a=new Ne(i.read());switch(A.type){case 2:var r=a.parseComponentValue();return A.parse(e,Re(r)?r.value:A.initialValue);case 0:return A.parse(e,a.parseComponentValue());case 1:return A.parse(e,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(A.format){case"angle":return tA(e,a.parseComponentValue());case"color":return rA(e,a.parseComponentValue());case"image":return LA(e,a.parseComponentValue());case"length":var s=a.parseComponentValue();return Xe(s)?s:Je;case"length-percentage":var o=a.parseComponentValue();return Ye(o)?o:Je;case"time":return jt.parse(e,a.parseComponentValue())}}},fi=function(e,A){var t=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===t||A===t},Bi=function(e,A){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,fi(A,3),this.styles=new gi(e,window.getComputedStyle(A,null)),yn(A)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(A.style.animationDuration="0s"),null!==this.styles.transform&&(A.style.transform="none")),this.bounds=s(this.context,A),fi(A,4)&&(this.flags|=16)},Ei="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bi="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Ci=0;Ci=0){if(e<55296||e>56319&&e<=65535)return A=((A=this.index[e>>5])<<2)+(31&e),this.data[A];if(e<=65535)return A=((A=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[A];if(e>11),A=this.index[A],A+=e>>5&63,A=((A=this.index[A])<<2)+(31&e),this.data[A];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Fi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xi="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Si=0;Si>10),r%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},Li=function(e,A){var t,i,n,a=function(e){var A,t,i,n,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(A=0;A>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),r=Array.isArray(a)?function(e){for(var A=e.length,t=[],i=0;i=55296&&n<=56319&&t=t)return{done:!0,value:null};for(var e=Oi;ir.x||n.y>r.y;return r=n,0===A||s}));return e.body.removeChild(A),s}(document);return Object.defineProperty(Ki,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var A=new Image,t=e.createElement("canvas"),i=t.getContext("2d");if(!i)return!1;A.src="data:image/svg+xml,";try{i.drawImage(A,0,0),t.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(Ki,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var A=e.createElement("canvas"),t=100;A.width=t,A.height=t;var i=A.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,t,t);var n=new Image,a=A.toDataURL();n.src=a;var r=Pi(t,t,0,0,n);return i.fillStyle="red",i.fillRect(0,0,t,t),Vi(r).then((function(A){i.drawImage(A,0,0);var n=i.getImageData(0,0,t,t).data;i.fillStyle="red",i.fillRect(0,0,t,t);var r=e.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",Ri(n)?Vi(Pi(t,t,0,0,r)):Promise.reject(!1)})).then((function(e){return i.drawImage(e,0,0),Ri(i.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Ki,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(Ki,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Ki,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Ki,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Ki,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},Gi=function(e,A){this.text=e,this.bounds=A},Wi=function(e,A){var t=A.ownerDocument;if(t){var i=t.createElement("html2canvaswrapper");i.appendChild(A.cloneNode(!0));var n=A.parentNode;if(n){n.replaceChild(i,A);var a=s(e,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return r.EMPTY},zi=function(e,A,t){var i=e.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(e,A),n.setEnd(e,A+t),n},Xi=function(e){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var A=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(A.segment(e)).map((function(e){return e.segment}))}return function(e){for(var A,t=Hi(e),i=[];!(A=t.next()).done;)A.value&&i.push(A.value.slice());return i}(e)},Yi=function(e,A){return 0!==A.letterSpacing?Xi(e):function(e,A){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return Ji(e,A)}(e,A)},ji=[32,160,4961,65792,65793,4153,4241],Ji=function(e,A){for(var t,i=function(e,A){var t=o(e),i=$(t,A),n=i[0],a=i[1],r=i[2],s=t.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var e=P;c0)if(Ki.SUPPORT_RANGE_BOUNDS){var n=zi(i,s,A.length).getClientRects();if(n.length>1){var o=Xi(A),l=0;o.forEach((function(A){a.push(new Gi(A,r.fromDOMRectList(e,zi(i,l+s,A.length).getClientRects()))),l+=A.length}))}else a.push(new Gi(A,r.fromDOMRectList(e,n)))}else{var c=i.splitText(A.length);a.push(new Gi(A,Wi(e,i))),i=c}else Ki.SUPPORT_RANGE_BOUNDS||(i=i.splitText(A.length));s+=A.length})),a}(e,this.text,t,A)},qi=function(e,A){switch(A){case 1:return e.toLowerCase();case 3:return e.replace(_i,$i);case 2:return e.toUpperCase();default:return e}},_i=/(^|\s|:|-|\(|\))([a-z])/g,$i=function(e,A,t){return e.length>0?A+t.toUpperCase():e},en=function(e){function t(A,t){var i=e.call(this,A,t)||this;return i.src=t.currentSrc||t.src,i.intrinsicWidth=t.naturalWidth,i.intrinsicHeight=t.naturalHeight,i.context.cache.addImage(i.src),i}return A(t,e),t}(Bi),An=function(e){function t(A,t){var i=e.call(this,A,t)||this;return i.canvas=t,i.intrinsicWidth=t.width,i.intrinsicHeight=t.height,i}return A(t,e),t}(Bi),tn=function(e){function t(A,t){var i=e.call(this,A,t)||this,n=new XMLSerializer,a=s(A,t);return t.setAttribute("width",a.width+"px"),t.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),i.intrinsicWidth=t.width.baseVal.value,i.intrinsicHeight=t.height.baseVal.value,i.context.cache.addImage(i.svg),i}return A(t,e),t}(Bi),nn=function(e){function t(A,t){var i=e.call(this,A,t)||this;return i.value=t.value,i}return A(t,e),t}(Bi),an=function(e){function t(A,t){var i=e.call(this,A,t)||this;return i.start=t.start,i.reversed="boolean"==typeof t.reversed&&!0===t.reversed,i}return A(t,e),t}(Bi),rn=[{type:15,flags:0,unit:"px",number:3}],sn=[{type:16,flags:0,number:50}],on="checkbox",ln="radio",cn="password",dn=707406591,hn=function(e){function t(A,t){var i,n,a,s=e.call(this,A,t)||this;switch(s.type=t.type.toLowerCase(),s.checked=t.checked,s.value=0===(a=(n=t).type===cn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,s.type!==on&&s.type!==ln||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(i=s.bounds).width>i.height?new r(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)t.textNodes.push(new Zi(e,n,t.styles));else if(vn(n))if(Dn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(A){return mn(e,A,t,i)}));else{var r=fn(e,n);r.styles.isVisible()&&(En(n,r,i)?r.flags|=4:bn(r.styles)&&(r.flags|=2),-1!==wn.indexOf(n.tagName)&&(r.flags|=8),t.elements.push(r),n.slot,n.shadowRoot?mn(e,n.shadowRoot,r,i):On(n)||Qn(n)||Nn(n)||mn(e,n,r,i))}},fn=function(e,A){return kn(A)?new en(e,A):Un(A)?new An(e,A):Qn(A)?new tn(e,A):xn(A)?new nn(e,A):Sn(A)?new an(e,A):Tn(A)?new hn(e,A):Nn(A)?new un(e,A):On(A)?new gn(e,A):Mn(A)?new pn(e,A):new Bi(e,A)},Bn=function(e,A){var t=fn(e,A);return t.flags|=4,mn(e,A,t,t),t},En=function(e,A,t){return A.styles.isPositionedWithZIndex()||A.styles.opacity<1||A.styles.isTransformed()||In(e)&&t.styles.isTransparent()},bn=function(e){return e.isPositioned()||e.isFloating()},Cn=function(e){return e.nodeType===Node.TEXT_NODE},vn=function(e){return e.nodeType===Node.ELEMENT_NODE},yn=function(e){return vn(e)&&void 0!==e.style&&!Fn(e)},Fn=function(e){return"object"==typeof e.className},xn=function(e){return"LI"===e.tagName},Sn=function(e){return"OL"===e.tagName},Tn=function(e){return"INPUT"===e.tagName},Qn=function(e){return"svg"===e.tagName},In=function(e){return"BODY"===e.tagName},Un=function(e){return"CANVAS"===e.tagName},kn=function(e){return"IMG"===e.tagName},Mn=function(e){return"IFRAME"===e.tagName},Ln=function(e){return"STYLE"===e.tagName},On=function(e){return"TEXTAREA"===e.tagName},Nn=function(e){return"SELECT"===e.tagName},Dn=function(e){return"SLOT"===e.tagName},Hn=function(e){return e.tagName.indexOf("-")>0},Rn=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var A=this.counters[e];return A&&A.length?A[A.length-1]:1},e.prototype.getCounterValues=function(e){return this.counters[e]||[]},e.prototype.pop=function(e){var A=this;e.forEach((function(e){return A.counters[e].pop()}))},e.prototype.parse=function(e){var A=this,t=e.counterIncrement,i=e.counterReset,n=!0;null!==t&&t.forEach((function(e){var t=A.counters[e.counter];t&&0!==e.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=e.increment)}));var a=[];return n&&i.forEach((function(e){var t=A.counters[e.counter];a.push(e.counter),t||(t=A.counters[e.counter]=[]),t.push(e.reset)})),a},e}(),Pn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Vn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Kn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Gn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Wn=function(e,A,t,i,n,a){return et?$n(e,n,a.length>0):i.integers.reduce((function(A,t,n){for(;e>=t;)e-=t,A+=i.values[n];return A}),"")+a},zn=function(e,A,t,i){var n="";do{t||e--,n=i(e)+n,e/=A}while(e*A>=A);return n},Xn=function(e,A,t,i,n){var a=t-A+1;return(e<0?"-":"")+(zn(Math.abs(e),a,i,(function(e){return l(Math.floor(e%a)+A)}))+n)},Yn=function(e,A,t){void 0===t&&(t=". ");var i=A.length;return zn(Math.abs(e),i,!1,(function(e){return A[Math.floor(e%i)]}))+t},jn=function(e,A,t,i,n,a){if(e<-9999||e>9999)return $n(e,4,n.length>0);var r=Math.abs(e),s=n;if(0===r)return A[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&ii(a,1)&&""!==s?s=A[l]+s:l>1||1===l&&0===o||1===l&&1===o&&ii(a,2)||1===l&&1===o&&ii(a,4)&&e>100||1===l&&o>1&&ii(a,8)?s=A[l]+(o>0?t[o-1]:"")+s:1===l&&o>0&&(s=t[o-1]+s),r=Math.floor(r/10)}return(e<0?i:"")+s},Jn="十百千萬",Zn="拾佰仟萬",qn="マイナス",_n="마이너스",$n=function(e,A,t){var i=t?". ":"",n=t?"、":"",a=t?", ":"",r=t?" ":"";switch(A){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=Xn(e,48,57,!0,i);return s.length<4?"0"+s:s;case 4:return Yn(e,"〇一二三四五六七八九",n);case 6:return Wn(e,1,3999,Pn,3,i).toLowerCase();case 7:return Wn(e,1,3999,Pn,3,i);case 8:return Xn(e,945,969,!1,i);case 9:return Xn(e,97,122,!1,i);case 10:return Xn(e,65,90,!1,i);case 11:return Xn(e,1632,1641,!0,i);case 12:case 49:return Wn(e,1,9999,Vn,3,i);case 35:return Wn(e,1,9999,Vn,3,i).toLowerCase();case 13:return Xn(e,2534,2543,!0,i);case 14:case 30:return Xn(e,6112,6121,!0,i);case 15:return Yn(e,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Yn(e,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return jn(e,"零一二三四五六七八九",Jn,"負",n,14);case 47:return jn(e,"零壹貳參肆伍陸柒捌玖",Zn,"負",n,15);case 42:return jn(e,"零一二三四五六七八九",Jn,"负",n,14);case 41:return jn(e,"零壹贰叁肆伍陆柒捌玖",Zn,"负",n,15);case 26:return jn(e,"〇一二三四五六七八九","十百千万",qn,n,0);case 25:return jn(e,"零壱弐参四伍六七八九","拾百千万",qn,n,7);case 31:return jn(e,"영일이삼사오육칠팔구","십백천만",_n,a,7);case 33:return jn(e,"零一二三四五六七八九","十百千萬",_n,a,0);case 32:return jn(e,"零壹貳參四五六七八九","拾百千",_n,a,7);case 18:return Xn(e,2406,2415,!0,i);case 20:return Wn(e,1,19999,Gn,3,i);case 21:return Xn(e,2790,2799,!0,i);case 22:return Xn(e,2662,2671,!0,i);case 22:return Wn(e,1,10999,Kn,3,i);case 23:return Yn(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Yn(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Xn(e,3302,3311,!0,i);case 28:return Yn(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Yn(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return Xn(e,3792,3801,!0,i);case 37:return Xn(e,6160,6169,!0,i);case 38:return Xn(e,4160,4169,!0,i);case 39:return Xn(e,2918,2927,!0,i);case 40:return Xn(e,1776,1785,!0,i);case 43:return Xn(e,3046,3055,!0,i);case 44:return Xn(e,3174,3183,!0,i);case 45:return Xn(e,3664,3673,!0,i);case 46:return Xn(e,3872,3881,!0,i);default:return Xn(e,48,57,!0,i)}},ea="data-html2canvas-ignore",Aa=function(){function e(e,A,t){if(this.context=e,this.options=t,this.scrolledElements=[],this.referenceElement=A,this.counters=new Rn,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,A){var t=this,a=ia(e,A);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,s=e.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ra(a).then((function(){return i(t,void 0,void 0,(function(){var e,t;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(da),o&&(o.scrollTo(A.left,A.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===A.top&&o.scrollX===A.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-A.left,o.scrollY-A.top,0,0))),e=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,aa(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(l,t)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(la(document.doctype)+""),ca(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},e.prototype.createElementClone=function(e){if(fi(e,2),Un(e))return this.createCanvasClone(e);if(Ln(e))return this.createStyleClone(e);var A=e.cloneNode(!1);return kn(A)&&(kn(e)&&e.currentSrc&&e.currentSrc!==e.src&&(A.src=e.currentSrc,A.srcset=""),"lazy"===A.loading&&(A.loading="eager")),Hn(A)?this.createCustomElementClone(A):A},e.prototype.createCustomElementClone=function(e){var A=document.createElement("html2canvascustomelement");return oa(e.style,A),A},e.prototype.createStyleClone=function(e){try{var A=e.sheet;if(A&&A.cssRules){var t=[].slice.call(A.cssRules,0).reduce((function(e,A){return A&&"string"==typeof A.cssText?e+A.cssText:e}),""),i=e.cloneNode(!1);return i.textContent=t,i}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var A;if(this.options.inlineImages&&e.ownerDocument){var t=e.ownerDocument.createElement("img");try{return t.src=e.toDataURL(),t}catch(A){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var i=e.cloneNode(!1);try{i.width=e.width,i.height=e.height;var n=e.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,e.width,e.height),0,0);else{var r=null!==(A=e.getContext("webgl2"))&&void 0!==A?A:e.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}a.drawImage(e,0,0)}return i}catch(A){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return i},e.prototype.appendChildNode=function(e,A,t){vn(A)&&("SCRIPT"===A.tagName||A.hasAttribute(ea)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(A))||this.options.copyStyles&&vn(A)&&Ln(A)||e.appendChild(this.cloneNode(A,t))},e.prototype.cloneNode=function(e,A){var t=this;if(Cn(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&vn(e)&&(yn(e)||Fn(e))){var n=this.createElementClone(e);n.style.transitionProperty="none";var a=i.getComputedStyle(e),r=i.getComputedStyle(e,":before"),s=i.getComputedStyle(e,":after");this.referenceElement===e&&yn(n)&&(this.clonedReferenceElement=n),In(n)&&pa(n);var o=this.counters.parse(new wi(this.context,a)),l=this.resolvePseudoContent(e,n,r,Ti.BEFORE);Hn(e)&&(A=!0);for(var c=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;c;c=c.nextSibling)if(vn(c)&&Dn(c)&&"function"==typeof c.assignedNodes){var d=c.assignedNodes();d.length&&d.forEach((function(e){return t.appendChildNode(n,e,A)}))}else this.appendChildNode(n,c,A);l&&n.insertBefore(l,n.firstChild);var h=this.resolvePseudoContent(e,n,s,Ti.AFTER);return h&&n.appendChild(h),this.counters.pop(o),(a&&(this.options.copyStyles||Fn(e))&&!Mn(e)||A)&&oa(a,n),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([n,e.scrollLeft,e.scrollTop]),(On(e)||Nn(e))&&(On(n)||Nn(n))&&(n.value=e.value),n}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,A,t,i){var n=this;if(t){var a=t.content,r=A.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==t.display){this.counters.parse(new wi(this.context,t));var s=new pi(this.context,t),o=r.createElement("html2canvaspseudoelement");oa(t,o),s.content.forEach((function(A){if(0===A.type)o.appendChild(r.createTextNode(A.value));else if(22===A.type){var t=r.createElement("img");t.src=A.value,t.style.opacity="1",o.appendChild(t)}else if(18===A.type){if("attr"===A.name){var i=A.values.filter(Re);i.length&&o.appendChild(r.createTextNode(e.getAttribute(i[0].value)||""))}else if("counter"===A.name){var a=A.values.filter(Ge),l=a[0],c=a[1];if(l&&Re(l)){var d=n.counters.getCounterValue(l.value),h=c&&Re(c)?vt.parse(n.context,c.value):3;o.appendChild(r.createTextNode($n(d,h,!1)))}}else if("counters"===A.name){var u=A.values.filter(Ge),g=(l=u[0],u[1]);if(c=u[2],l&&Re(l)){var p=n.counters.getCounterValues(l.value),w=c&&Re(c)?vt.parse(n.context,c.value):3,m=g&&0===g.type?g.value:"",f=p.map((function(e){return $n(e,w,!1)})).join(m);o.appendChild(r.createTextNode(f))}}}else if(20===A.type)switch(A.value){case"open-quote":o.appendChild(r.createTextNode(li(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(li(s.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(A.value))}})),o.className=ha+" "+ua;var l=i===Ti.BEFORE?" "+ha:" "+ua;return Fn(A)?A.className.baseValue+=l:A.className+=l,o}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Ti||(Ti={}));var ta,ia=function(e,A){var t=e.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=A.width.toString(),t.height=A.height.toString(),t.scrolling="no",t.setAttribute(ea,"true"),e.body.appendChild(t),t},na=function(e){return new Promise((function(A){e.complete?A():e.src?(e.onload=A,e.onerror=A):A()}))},aa=function(e){return Promise.all([].slice.call(e.images,0).map(na))},ra=function(e){return new Promise((function(A,t){var i=e.contentWindow;if(!i)return t("No window assigned for iframe");var n=i.document;i.onload=e.onload=function(){i.onload=e.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),A(e))}),50)}}))},sa=["all","d","content"],oa=function(e,A){for(var t=e.length-1;t>=0;t--){var i=e.item(t);-1===sa.indexOf(i)&&A.style.setProperty(i,e.getPropertyValue(i))}return A},la=function(e){var A="";return e&&(A+=""),A},ca=function(e,A,t){e&&e.defaultView&&(A!==e.defaultView.pageXOffset||t!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(A,t)},da=function(e){var A=e[0],t=e[1],i=e[2];A.scrollLeft=t,A.scrollTop=i},ha="___html2canvas___pseudoelement_before",ua="___html2canvas___pseudoelement_after",ga='{\n content: "" !important;\n display: none !important;\n}',pa=function(e){wa(e,"."+ha+":before"+ga+"\n ."+ua+":after"+ga)},wa=function(e,A){var t=e.ownerDocument;if(t){var i=t.createElement("style");i.textContent=A,e.appendChild(i)}},ma=function(){function e(){}return e.getOrigin=function(A){var t=e._link;return t?(t.href=A,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},e.isSameOrigin=function(A){return e.getOrigin(A)===e._origin},e.setContext=function(A){e._link=A.document.createElement("a"),e._origin=e.getOrigin(A.location.href)},e._origin="about:blank",e}(),fa=function(){function e(e,A){this.context=e,this._options=A,this._cache={}}return e.prototype.addImage=function(e){var A=Promise.resolve();return this.has(e)?A:Fa(e)||Ca(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),A):A},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return i(this,void 0,void 0,(function(){var A,t,i,a,r=this;return n(this,(function(n){switch(n.label){case 0:return A=ma.isSameOrigin(e),t=!va(e)&&!0===this._options.useCORS&&Ki.SUPPORT_CORS_IMAGES&&!A,i=!va(e)&&!A&&!Fa(e)&&"string"==typeof this._options.proxy&&Ki.SUPPORT_CORS_XHR&&!t,A||!1!==this._options.allowTaint||va(e)||Fa(e)||i||t?(a=e,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,A){var i=new Image;i.onload=function(){return e(i)},i.onerror=A,(ya(a)||t)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return e(i)}),500),r._options.imageTimeout>0&&setTimeout((function(){return A("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var A=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var i=e.substring(0,256);return new Promise((function(n,a){var r=Ki.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)n(s.response);else{var e=new FileReader;e.addEventListener("load",(function(){return n(e.result)}),!1),e.addEventListener("error",(function(e){return a(e)}),!1),e.readAsDataURL(s.response)}else a("Failed to proxy resource "+i+" with status code "+s.status)},s.onerror=a;var o=t.indexOf("?")>-1?"&":"?";if(s.open("GET",""+t+o+"url="+encodeURIComponent(e)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),A._options.imageTimeout){var l=A._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}s.send()}))},e}(),Ba=/^data:image\/svg\+xml/i,Ea=/^data:image\/.*;base64,/i,ba=/^data:image\/.*/i,Ca=function(e){return Ki.SUPPORT_SVG_DRAWING||!xa(e)},va=function(e){return ba.test(e)},ya=function(e){return Ea.test(e)},Fa=function(e){return"blob"===e.substr(0,4)},xa=function(e){return"svg"===e.substr(-3).toLowerCase()||Ba.test(e)},Sa=function(){function e(e,A){this.type=0,this.x=e,this.y=A}return e.prototype.add=function(A,t){return new e(this.x+A,this.y+t)},e}(),Ta=function(e,A,t){return new Sa(e.x+(A.x-e.x)*t,e.y+(A.y-e.y)*t)},Qa=function(){function e(e,A,t,i){this.type=1,this.start=e,this.startControl=A,this.endControl=t,this.end=i}return e.prototype.subdivide=function(A,t){var i=Ta(this.start,this.startControl,A),n=Ta(this.startControl,this.endControl,A),a=Ta(this.endControl,this.end,A),r=Ta(i,n,A),s=Ta(n,a,A),o=Ta(r,s,A);return t?new e(this.start,i,r,o):new e(o,s,a,this.end)},e.prototype.add=function(A,t){return new e(this.start.add(A,t),this.startControl.add(A,t),this.endControl.add(A,t),this.end.add(A,t))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),Ia=function(e){return 1===e.type},Ua=function(e){var A=e.styles,t=e.bounds,i=_e(A.borderTopLeftRadius,t.width,t.height),n=i[0],a=i[1],r=_e(A.borderTopRightRadius,t.width,t.height),s=r[0],o=r[1],l=_e(A.borderBottomRightRadius,t.width,t.height),c=l[0],d=l[1],h=_e(A.borderBottomLeftRadius,t.width,t.height),u=h[0],g=h[1],p=[];p.push((n+s)/t.width),p.push((u+c)/t.width),p.push((a+g)/t.height),p.push((o+d)/t.height);var w=Math.max.apply(Math,p);w>1&&(n/=w,a/=w,s/=w,o/=w,c/=w,d/=w,u/=w,g/=w);var m=t.width-s,f=t.height-d,B=t.width-c,E=t.height-g,b=A.borderTopWidth,C=A.borderRightWidth,v=A.borderBottomWidth,y=A.borderLeftWidth,F=$e(A.paddingTop,e.bounds.width),x=$e(A.paddingRight,e.bounds.width),S=$e(A.paddingBottom,e.bounds.width),T=$e(A.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?ka(t.left+y/3,t.top+b/3,n-y/3,a-b/3,ta.TOP_LEFT):new Sa(t.left+y/3,t.top+b/3),this.topRightBorderDoubleOuterBox=n>0||a>0?ka(t.left+m,t.top+b/3,s-C/3,o-b/3,ta.TOP_RIGHT):new Sa(t.left+t.width-C/3,t.top+b/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?ka(t.left+B,t.top+f,c-C/3,d-v/3,ta.BOTTOM_RIGHT):new Sa(t.left+t.width-C/3,t.top+t.height-v/3),this.bottomLeftBorderDoubleOuterBox=u>0||g>0?ka(t.left+y/3,t.top+E,u-y/3,g-v/3,ta.BOTTOM_LEFT):new Sa(t.left+y/3,t.top+t.height-v/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?ka(t.left+2*y/3,t.top+2*b/3,n-2*y/3,a-2*b/3,ta.TOP_LEFT):new Sa(t.left+2*y/3,t.top+2*b/3),this.topRightBorderDoubleInnerBox=n>0||a>0?ka(t.left+m,t.top+2*b/3,s-2*C/3,o-2*b/3,ta.TOP_RIGHT):new Sa(t.left+t.width-2*C/3,t.top+2*b/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?ka(t.left+B,t.top+f,c-2*C/3,d-2*v/3,ta.BOTTOM_RIGHT):new Sa(t.left+t.width-2*C/3,t.top+t.height-2*v/3),this.bottomLeftBorderDoubleInnerBox=u>0||g>0?ka(t.left+2*y/3,t.top+E,u-2*y/3,g-2*v/3,ta.BOTTOM_LEFT):new Sa(t.left+2*y/3,t.top+t.height-2*v/3),this.topLeftBorderStroke=n>0||a>0?ka(t.left+y/2,t.top+b/2,n-y/2,a-b/2,ta.TOP_LEFT):new Sa(t.left+y/2,t.top+b/2),this.topRightBorderStroke=n>0||a>0?ka(t.left+m,t.top+b/2,s-C/2,o-b/2,ta.TOP_RIGHT):new Sa(t.left+t.width-C/2,t.top+b/2),this.bottomRightBorderStroke=c>0||d>0?ka(t.left+B,t.top+f,c-C/2,d-v/2,ta.BOTTOM_RIGHT):new Sa(t.left+t.width-C/2,t.top+t.height-v/2),this.bottomLeftBorderStroke=u>0||g>0?ka(t.left+y/2,t.top+E,u-y/2,g-v/2,ta.BOTTOM_LEFT):new Sa(t.left+y/2,t.top+t.height-v/2),this.topLeftBorderBox=n>0||a>0?ka(t.left,t.top,n,a,ta.TOP_LEFT):new Sa(t.left,t.top),this.topRightBorderBox=s>0||o>0?ka(t.left+m,t.top,s,o,ta.TOP_RIGHT):new Sa(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||d>0?ka(t.left+B,t.top+f,c,d,ta.BOTTOM_RIGHT):new Sa(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=u>0||g>0?ka(t.left,t.top+E,u,g,ta.BOTTOM_LEFT):new Sa(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||a>0?ka(t.left+y,t.top+b,Math.max(0,n-y),Math.max(0,a-b),ta.TOP_LEFT):new Sa(t.left+y,t.top+b),this.topRightPaddingBox=s>0||o>0?ka(t.left+Math.min(m,t.width-C),t.top+b,m>t.width+C?0:Math.max(0,s-C),Math.max(0,o-b),ta.TOP_RIGHT):new Sa(t.left+t.width-C,t.top+b),this.bottomRightPaddingBox=c>0||d>0?ka(t.left+Math.min(B,t.width-y),t.top+Math.min(f,t.height-v),Math.max(0,c-C),Math.max(0,d-v),ta.BOTTOM_RIGHT):new Sa(t.left+t.width-C,t.top+t.height-v),this.bottomLeftPaddingBox=u>0||g>0?ka(t.left+y,t.top+Math.min(E,t.height-v),Math.max(0,u-y),Math.max(0,g-v),ta.BOTTOM_LEFT):new Sa(t.left+y,t.top+t.height-v),this.topLeftContentBox=n>0||a>0?ka(t.left+y+T,t.top+b+F,Math.max(0,n-(y+T)),Math.max(0,a-(b+F)),ta.TOP_LEFT):new Sa(t.left+y+T,t.top+b+F),this.topRightContentBox=s>0||o>0?ka(t.left+Math.min(m,t.width+y+T),t.top+b+F,m>t.width+y+T?0:s-y+T,o-(b+F),ta.TOP_RIGHT):new Sa(t.left+t.width-(C+x),t.top+b+F),this.bottomRightContentBox=c>0||d>0?ka(t.left+Math.min(B,t.width-(y+T)),t.top+Math.min(f,t.height+b+F),Math.max(0,c-(C+x)),d-(v+S),ta.BOTTOM_RIGHT):new Sa(t.left+t.width-(C+x),t.top+t.height-(v+S)),this.bottomLeftContentBox=u>0||g>0?ka(t.left+y+T,t.top+E,Math.max(0,u-(y+T)),g-(v+S),ta.BOTTOM_LEFT):new Sa(t.left+y+T,t.top+t.height-(v+S))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(ta||(ta={}));var ka=function(e,A,t,i,n){var a=(Math.sqrt(2)-1)/3*4,r=t*a,s=i*a,o=e+t,l=A+i;switch(n){case ta.TOP_LEFT:return new Qa(new Sa(e,l),new Sa(e,l-s),new Sa(o-r,A),new Sa(o,A));case ta.TOP_RIGHT:return new Qa(new Sa(e,A),new Sa(e+r,A),new Sa(o,l-s),new Sa(o,l));case ta.BOTTOM_RIGHT:return new Qa(new Sa(o,A),new Sa(o,A+s),new Sa(e+r,l),new Sa(e,l));case ta.BOTTOM_LEFT:default:return new Qa(new Sa(o,l),new Sa(o-r,l),new Sa(e,A+s),new Sa(e,A))}},Ma=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},La=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},Oa=function(e,A,t){this.offsetX=e,this.offsetY=A,this.matrix=t,this.type=0,this.target=6},Na=function(e,A){this.path=e,this.target=A,this.type=1},Da=function(e){this.opacity=e,this.type=2,this.target=6},Ha=function(e){return 1===e.type},Ra=function(e,A){return e.length===A.length&&e.some((function(e,t){return e===A[t]}))},Pa=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Va=function(){function e(e,A){if(this.container=e,this.parent=A,this.effects=[],this.curves=new Ua(this.container),this.container.styles.opacity<1&&this.effects.push(new Da(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Oa(t,i,n))}if(0!==this.container.styles.overflowX){var a=Ma(this.curves),r=La(this.curves);Ra(a,r)?this.effects.push(new Na(a,6)):(this.effects.push(new Na(a,2)),this.effects.push(new Na(r,4)))}}return e.prototype.getEffects=function(e){for(var A=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,i=this.effects.slice(0);t;){var n=t.effects.filter((function(e){return!Ha(e)}));if(A||0!==t.container.styles.position||!t.parent){if(i.unshift.apply(i,n),A=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var a=Ma(t.curves),r=La(t.curves);Ra(a,r)||i.unshift(new Na(r,6))}}else i.unshift.apply(i,n);t=t.parent}return i.filter((function(A){return ii(A.target,e)}))},e}(),Ka=function(e,A,t,i){e.container.elements.forEach((function(n){var a=ii(n.flags,4),r=ii(n.flags,2),s=new Va(n,e);ii(n.styles.display,2048)&&i.push(s);var o=ii(n.flags,8)?[]:i;if(a||r){var l=a||n.styles.isPositioned()?t:A,c=new Pa(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(e,A){return d>e.element.container.styles.zIndex.order?(h=A,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var u=0;l.positiveZIndex.some((function(e,A){return d>=e.element.container.styles.zIndex.order?(u=A+1,!1):u>0})),l.positiveZIndex.splice(u,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Ka(s,c,a?c:t,o)}else n.styles.isInlineLevel()?A.inlineLevel.push(s):A.nonInlineLevel.push(s),Ka(s,A,t,o);ii(n.flags,8)&&Ga(n,o)}))},Ga=function(e,A){for(var t=e instanceof an?e.start:1,i=e instanceof an&&e.reversed,n=0;n0&&e.intrinsicHeight>0){var i=ja(e),n=La(A);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,e.intrinsicWidth,e.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return i(this,void 0,void 0,(function(){var A,i,a,s,o,l,c,d,h,u,g,p,w,m,f,B,E,b;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(e.getEffects(4)),A=e.container,i=e.curves,a=A.styles,s=0,o=A.textNodes,n.label=1;case 1:return s0&&y>0&&(f=i.ctx.createPattern(p,"repeat"),i.renderRepeat(E,f,x,S))):function(e){return 2===e.type}(t)&&(B=Ja(e,A,[null,null,null]),E=B[0],b=B[1],C=B[2],v=B[3],y=B[4],F=0===t.position.length?[Ze]:t.position,x=$e(F[0],v),S=$e(F[F.length-1],y),T=function(e,A,t,i,n){var a=0,r=0;switch(e.size){case 0:0===e.shape?a=r=Math.min(Math.abs(A),Math.abs(A-i),Math.abs(t),Math.abs(t-n)):1===e.shape&&(a=Math.min(Math.abs(A),Math.abs(A-i)),r=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===e.shape)a=r=Math.min(CA(A,t),CA(A,t-n),CA(A-i,t),CA(A-i,t-n));else if(1===e.shape){var s=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(A),Math.abs(A-i)),o=vA(i,n,A,t,!0),l=o[0],c=o[1];r=s*(a=CA(l-A,(c-t)/s))}break;case 1:0===e.shape?a=r=Math.max(Math.abs(A),Math.abs(A-i),Math.abs(t),Math.abs(t-n)):1===e.shape&&(a=Math.max(Math.abs(A),Math.abs(A-i)),r=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===e.shape)a=r=Math.max(CA(A,t),CA(A,t-n),CA(A-i,t),CA(A-i,t-n));else if(1===e.shape){s=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(A),Math.abs(A-i));var d=vA(i,n,A,t,!1);l=d[0],c=d[1],r=s*(a=CA(l-A,(c-t)/s))}}return Array.isArray(e.size)&&(a=$e(e.size[0],i),r=2===e.size.length?$e(e.size[1],n):a),[a,r]}(t,x,S,v,y),Q=T[0],I=T[1],Q>0&&I>0&&(U=i.ctx.createRadialGradient(b+x,C+S,0,b+x,C+S,Q),EA(t.stops,2*Q).forEach((function(e){return U.addColorStop(e.stop,oA(e.color))})),i.path(E),i.ctx.fillStyle=U,Q!==I?(k=e.bounds.left+.5*e.bounds.width,M=e.bounds.top+.5*e.bounds.height,O=1/(L=I/Q),i.ctx.save(),i.ctx.translate(k,M),i.ctx.transform(1,0,0,L,0,0),i.ctx.translate(-k,-M),i.ctx.fillRect(b,O*(C-M)+M,v,y*O),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return A--,[2]}}))},i=this,a=0,r=e.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,e.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,e.curves)];case 10:n.sent(),n.label=11;case 11:r++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,A,t,a,r){return i(this,void 0,void 0,(function(){var i,s,o,l,c,d,h,u,g,p,w,m,f,B,E,b;return n(this,(function(n){return this.ctx.save(),i=function(e,A){switch(A){case 0:return za(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return za(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return za(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return za(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(a,t),s=Wa(a,t),2===r&&(this.path(s),this.ctx.clip()),Ia(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Ia(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===t||2===t?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(i):this.formatPath(s.slice(0,2)),u=A<3?3*A:2*A,g=A<3?2*A:A,3===r&&(u=A,g=A),p=!0,h<=2*u?p=!1:h<=2*u+g?(u*=w=h/(2*u+g),g*=w):(m=Math.floor((h+g)/(u+g)),f=(h-m*u)/(m-1),g=(B=(h-(m+1)*u)/m)<=0||Math.abs(g-f){const a=await tex2dataURL(e,n);if(a){const e=[];e.push({mimeType:a.mimeType,id:A,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1,shouldScale:!0}),i(e,t)}};async function tex2dataURL(e,A){let t=0;for(;!A.mathjax&&!A.mathjaxLoaderFinished&&t<10;)await sleep$1(100),t++;A.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(e,A)}catch(t){await sleep$1(100);try{return await mathjaxSVG(e,A)}catch(t){await sleep$1(100);try{return await mathjaxSVG(e,A)}catch(t){return A.mathjax?new obsidian_module.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian_module.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(e)}}}}async function mathjaxSVG(e,A){const t=A.mathjax.tex2svg(e,{display:!0,scale:4}).querySelector("svg");if(t){const e=svgToBase64(t.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:e,created:Date.now(),size:await getImageSize(e)}}return null}async function mathjaxImage2html(e){const A=document.body.createDiv();A.style.display="table";const t=window.MathJax.tex2chtml(e,{display:!0,scale:4});t.style.margin="3px",t.style.color="black";const i=t.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),A.appendChild(t),window.MathJax.typeset();const n=await html2canvas(A,{backgroundColor:null});return document.body.removeChild(A),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)";class EmbeddedFile{constructor(e,A,t){this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.plugin=e,this.resetImage(A,t)}resetImage(e,A){this.imgInverted=this.img="",this.mtime=0,this.linkParts=getLinkParts(A),this.hostPath=e,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,e),this.file||0==this.attemptCounter++&&new obsidian_module.Notice(`Excalidraw Warning: could not find image file: ${A}`,5e3)):new obsidian_module.Notice(`Excalidraw Error\nIncorrect embedded filename: ${A}`)}fileChanged(){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1)}setImage(e,A,t,i,n){if(this.file){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.file.stat.mtime,this.size=t,this.mimeType=A,i&&n){case!0:this.imgInverted=e;break;case!1:this.img=e}this.isSVGwithBitmap=n}}isLoaded(e){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?!this.fileChanged()&&(this.isSVGwithBitmap&&e?""!==this.imgInverted:""!==this.img):(this.attemptCounter++,!0)}getImage(e){return this.file?e&&this.isSVGwithBitmap?this.imgInverted:this.img:""}shouldScale(){return!Boolean(this.linkParts&&this.linkParts.original&&this.linkParts.original.endsWith("|100%"))}}class EmbeddedFilesLoader{constructor(e,A){this.terminate=!1,this.plugin=e,this.isDark=A,this.uid=nanoid()}async getObsidianImage(e,A){if(!this.plugin||!e)return null;const t=e instanceof EmbeddedFile?e.file:e,i=e instanceof EmbeddedFile?e.linkParts:{original:t.path,path:t.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight};let n=!1;const a=this.plugin.isExcalidrawFile(t);if(!IMAGE_TYPES.contains(t.extension)&&!a&&"md"!==t.extension)return null;const r=await app.vault.readBinary(t),s=a?await(async e=>{const i=hasExportTheme(this.plugin,t)?getExportTheme(this.plugin,t,"light"):void 0,a={withBackground:!!hasExportBackground(this.plugin,t)&&getWithBackground(this.plugin,t),withTheme:!!i},r=await createSVG(t.path,!0,a,this,i,null,null,[],this.plugin,A+1,getExportPadding(this.plugin,t)),s=r.querySelectorAll("image:not([href^='data:image/svg'])");return s.length>0&&(n=!0),n&&e&&s.forEach((e=>{var A;const t=null===(A=e.parentElement)||void 0===A?void 0:A.id;r.querySelectorAll(`use[href='#${t}']`).forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))})),!n&&r.getAttribute("hasbitmap")&&(n=!0),svgToBase64(r.outerHTML)})(this.isDark):null;let o="image/svg+xml";if(!a)switch(t.extension){case"png":o="image/png";break;case"jpeg":case"jpg":o="image/jpeg";break;case"gif":o="image/gif";break;case"webp":o="image/webp";break;case"bmp":o="image/bmp";break;case"ico":o="image/x-icon";break;case"svg":case"md":o="image/svg+xml";break;default:o="application/octet-stream"}let l=null!=s?s:"svg"===t.extension?await getSVGData(app,t):"md"===t.extension?null:await getDataURL(r,o);if(!l){const e=await this.convertMarkdownToSVG(this.plugin,t,i);l=e.dataURL,n=e.hasSVGwithBitmap}const c=await getImageSize(l);return{mimeType:o,fileId:await generateIdFromFile(r),dataURL:l,created:t.stat.mtime,hasSVGwithBitmap:n,size:c}}async loadSceneFiles(e,A,t){var i,n;if(t>4)return void new obsidian_module.Notice(t$d("INFINITE_LOOP_WARNING")+t.toString(),6e3);const a=e.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(n=null===(i=null==e?void 0:e.scene)||void 0===i?void 0:i.appState)||void 0===n?void 0:n.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const e=r.value[1];if(e.isLoaded(this.isDark))e.isSVGwithBitmap&&s.push({mimeType:e.mimeType,id:r.value[0],dataURL:e.getImage(this.isDark),created:e.mtime,size:e.size,hasSVGwithBitmap:e.isSVGwithBitmap,shouldScale:e.shouldScale()});else{const A=await this.getObsidianImage(e,t);A&&s.push({mimeType:A.mimeType,id:r.value[0],dataURL:A.dataURL,created:A.created,size:A.size,hasSVGwithBitmap:A.hasSVGwithBitmap,shouldScale:e.shouldScale()})}}let o;const l=e.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!e.getEquation(o.value[0]).isLoaded){const e=o.value[1].latex,A=await tex2dataURL(e,this.plugin);A&&s.push({mimeType:A.mimeType,id:o.value[0],dataURL:A.dataURL,created:A.created,size:A.size,hasSVGwithBitmap:!1,shouldScale:!0})}if(!this.terminate)try{A(s,this.isDark)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}async convertMarkdownToSVG(e,A,t){var i,n,a,r;let s=!1;const o=await getTransclusion(t,e.app,A);let l=(null!==(i=o.leadingHashes)&&void 0!==i?i:"")+o.contents;""===l&&(l="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const c=e.app.metadataCache.getFileCache(A);let d,h=e.settings.mdFont;switch((null==c?void 0:c.frontmatter)&&Boolean(c.frontmatter["excalidraw-font"])&&(h=c.frontmatter["excalidraw-font"]),h){case"Virgil":d=VIRGIL_FONT;break;case"Cascadia":d=CASCADIA_FONT;break;case"":d="";break;default:const t=await getFontDataURL(e.app,h,A.path);d=t.fontDef,h=t.fontName}(null==c?void 0:c.frontmatter)&&null!==c.frontmatter.banner&&(l=l.replace(/banner:\s*.*/,""));const u=(null==c?void 0:c.frontmatter)&&null!==(n=c.frontmatter["excalidraw-font-color"])&&void 0!==n?n:e.settings.mdFontColor;let g=(null==c?void 0:c.frontmatter)&&null!==(a=c.frontmatter["excalidraw-css"])&&void 0!==a?a:"",p=!1;if(g&&""!=g){const t=e.app.metadataCache.getFirstLinkpathDest(g,A.path);t&&(g=await e.app.vault.read(t),p=!0)}if(!p)if(e.settings.mdCSS&&""!==e.settings.mdCSS){const t=e.app.metadataCache.getFirstLinkpathDest(e.settings.mdCSS,A.path);g+=t?`\n${await e.app.vault.read(t)}`:DEFAULT_MD_EMBED_CSS}else g+=DEFAULT_MD_EMBED_CSS;const w=(null==c?void 0:c.frontmatter)&&null!==(r=c.frontmatter["excalidraw-border-color"])&&void 0!==r?r:e.settings.mdBorderColor;w&&""!==w&&!g.match(/svg/i)&&(g+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let m=` width="${t.width}px" height="100000"`,f=` width="${t.width}px" height="100%"`;const B=(e,A,t)=>`${t?``:""}${e}${A}${""!==d?``:""}`,E=createDiv();E.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),E.setAttribute("class","excalidraw-md-host"),""!==h&&(E.style.fontFamily=h),E.style.overflow="auto",E.style.display="block",E.style.color=u&&""!==u?u:"initial",await obsidian_module.MarkdownRenderer.renderMarkdown(l,E,A.path,e),E.querySelectorAll(":scope > *[class^='frontmatter']").forEach((e=>E.removeChild(e)));const b=Array.from(E.querySelectorAll("span[class='internal-embed']"));for(let t=0;t{const A=e.style,t=window.getComputedStyle(e);let i="";for(const e in A)A.hasOwnProperty(e)&&(i+=`${e}: ${t[e]};`);e.setAttribute("style",i)}));const x=(new XMLSerializer).serializeToString(y),S=(new XMLSerializer).serializeToString(F);document.body.removeChild(C);const T=new DOMParser,Q=T.parseFromString(B(x,S),"image/svg+xml").firstElementChild,I=createDiv();I.appendChild(Q),document.body.appendChild(I);const U=Q.querySelector(".excalidraw-md-footer").scrollHeight,k=Q.querySelector(".excalidraw-md-host").scrollHeight+U,M=k<=t.height?k:t.height;document.body.removeChild(I),m=` width="${t.width}px" height="${M}px"`,f=` width="${t.width}px" height="${M}px"`,E.style.height=M-U+"px",E.style.overflow="hidden";const L=E.querySelectorAll("img:not([src^='data:image/svg+xml'])");L.length>0&&(s=!0),s&&this.isDark&&L.forEach((e=>{e instanceof HTMLImageElement&&(e.style.filter=THEME_FILTER)}));const O=B((new XMLSerializer).serializeToString(E),'',g);return e.ea.mostRecentMarkdownSVG=T.parseFromString(O,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(O),hasSVGwithBitmap:s}}}const getSVGData=async(e,A)=>{const t=await e.vault.read(A);return svgToBase64(t)},generateIdFromFile=async e=>{let A;try{const t=await window.crypto.subtle.digest("SHA-1",e);A=Array.from(new Uint8Array(t)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:e}),A=fileid()}return A},{wrapText:wrapText,getFontString:getFontString,getMaxContainerWidth:getMaxContainerWidth}=excalidrawLib;var AutoexportPreference;!function(e){e[e.none=0]="none",e[e.both=1]="both",e[e.png=2]="png",e[e.svg=3]="svg",e[e.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ +//![[link|alias]] [alias](link){num} +EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getRes:e=>e.matchAll(REGEX_LINK.EXPR),isTransclusion:e=>!!e.value[1],getLink:e=>e.value[3]?e.value[3]:e.value[6],isWikiLink:e=>!!e.value[3],getAliasOrLink:e=>REGEX_LINK.isWikiLink(e)?e.value[4]?e.value[4]:e.value[3]:e.value[5]?e.value[5]:e.value[6],getWrapLength:(e,A)=>{const t=parseInt(e.value[8]);return isNaN(t)?A>0?A:null:t}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=e=>null!==e.match(/```compressed\-json\n/gm),getDecompressedScene=e=>{let A,t=e.matchAll(DRAWING_COMPRESSED_REG);return A=t.next(),A.done&&(t=e.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),A=t.next()),A.value&&A.value.length>1?[decompress(A.value[2]),A]:[null,A]},changeThemeOfExcalidrawMD=e=>{const A=isCompressedMD(e);let t=A?getDecompressedScene(e)[0]:e;return t?(isObsidianThemeDark?1===(t.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(t.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),A?e.replace(DRAWING_COMPRESSED_REG,`$1${compress(t)}$3`):t):e};function getJSON(e){let A,t;if(isCompressedMD(e)){const[A,t]=getDecompressedScene(e);return A?{scene:A.substring(0,A.lastIndexOf("}")+1),pos:t.value.index}:{scene:e,pos:t.value?t.value.index:0}}if(A=e.matchAll(DRAWING_REG),t=A.next(),t.done&&(A=e.matchAll(DRAWING_REG_FALLBACK),t=A.next()),t.value&&t.value.length>1){const e=t.value[2];return{scene:e.substr(0,e.lastIndexOf("}")+1),pos:t.value.index}}return{scene:e,pos:t.value?t.value.index:0}}function getMarkdownDrawingSection(e,A){return A?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(e)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}const estimateMaxLineLen=(e,A)=>{if(!A||!e)return null;if(e===A)return null;let t=0;const i=e.split("\n");if(1===i.length)return null;for(const e of i){const A=e.trim();A.length>t&&(t=A.length)}return t},wrap=(e,A)=>A?wrapTextAtCharLength(e,A,!1,0):e;class ExcalidrawData{constructor(e){this.plugin=e,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=e.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var e,A;if(!this.scene||!this.scene.elements)return;const t=this.scene.elements;for(const i of t){if(i.boundElements){const e=new Map;i.boundElements.forEach((A=>{e.set(A.id,A.type)}));const A=Array.from(e,(([e,A])=>({id:e,type:A})));A.length!==i.boundElements.length&&(i.boundElements=A)}i.boundElementIds&&(i.boundElements||(i.boundElements=[]),i.boundElements=i.boundElements.concat(i.boundElementIds.map((e=>({type:"arrow",id:e})))),delete i.boundElementIds),"text"!==i.type||i.containerId||(i.containerId=null),null===i.x&&(i.x=0),null===i.y&&(i.y=0),null===(null===(e=i.startBinding)||void 0===e?void 0:e.focus)&&(i.startBinding.focus=0),null===(null===(A=i.endBinding)||void 0===A?void 0:A.focus)&&(i.endBinding.focus=0),null===i.fontSize&&(i.fontSize=20)}try{t.filter((e=>"text"===e.type&&e.containerId&&t.some((A=>A.id===e.containerId&&A.boundElements.length>0&&A.boundElements.some((A=>"text"===A.type&&A.id!==e.id&&A.id.length>8)))))).forEach((e=>{try{const A=t.filter((A=>A.id===e.containerId))[0],i=A.boundElements.filter((e=>!("text"===e.type&&!t.some((A=>A.id===e.id)))));A.boundElements=[{id:e.id,type:"text"}].concat(i)}catch(e){}})),t.filter((e=>e.boundElements&&e.boundElements.length>0)).forEach((e=>{const A=e.boundElements.filter((e=>t.some((A=>A.id===e.id))));A.length!==e.boundElements.length&&(e.boundElements=A)})),t.filter((e=>"text"===e.type&&e.containerId&&!t.some((A=>A.id===e.containerId)))).forEach((e=>{e.containerId=null}))}catch(e){}}async loadData(e,A,t){if(!A)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=A&&(this.files.clear(),this.equations.clear()),this.file=A,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.scene=null,this.plugin.settings.syncExcalidraw){const e=`${A.path.substring(0,A.path.lastIndexOf(".md"))}.excalidraw`,t=this.app.vault.getAbstractFileByPath(e);if(t&&t instanceof obsidian_module.TFile&&t.stat.mtime>A.stat.mtime){const e=await this.app.vault.read(t);this.scene=JSON.parse(e)}}let i=null;i=(()=>{const A=getJSON(e);if(-1===A.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(A.scene)),A})(),this.deletedElements=this.scene.elements.filter((e=>e.isDeleted)),this.scene.elements=this.scene.elements.filter((e=>!e.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.initializeNonInitializedFields();let n=(e=e.substring(0,i.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===n)return await this.setTextMode(t,!1),this.loaded=!0,!0;n+=e.match(/((^%%\n)?# Text Elements\n)/m)[0].length,e=e.substring(n),n=0;const a=" ^12345678\n\n".length;let r,s=e.matchAll(/\s\^(.{8})[\n]+/g);for(;!(r=s.next()).done;){let A=e.substring(n,r.value.index);const t=r.value[1],i=this.scene.elements.filter((e=>e.id===t))[0];if(i)if("text"!==i.type)i.link!==A&&(i.link=A,i.version++,i.versionNonce++),this.elementLinks.set(t,A);else{const e=estimateMaxLineLen(i.text,i.originalText),n=A.matchAll(/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm).next();n.done||(A=A.replace(/^%%\*\*\*>>>text element-link:\[\[[^<*\]]*]]<<<\*\*\*%%/gm,""),i.link=n.value[1]);const a=await this.parse(A);this.textElements.set(t,{raw:A,parsed:a.parsed,wrapAt:e}),a.link&&(i.link=a.link),!i||i.rawText&&""!==i.rawText||(i.rawText=A)}n=r.value.index+a}for(s=(e=e.substring(e.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\n/gm);!(r=s.next()).done;){const e=new EmbeddedFile(this.plugin,this.file.path,r.value[2]);this.setFile(r.value[1],e)}for(s=e.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(r=s.next()).done;)this.setEquation(r.value[1],{latex:r.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(t,!0),this.loaded=!0,!0}async loadLegacyData(e,A){return!!A&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=A,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.scene=JSON.parse(e),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(e,A=!1){this.scene&&(this.textMode=e,await this.updateSceneTextElements(A))}updateTextElement(e,A,t,i=!1,n){if(i||A!=e.text){const i=_measureText(A,e.fontSize,e.fontFamily);e.text=A,e.originalText=t,e.containerId&&"arrow"!==n||(e.width=i.w),e.height=i.h,e.baseline=i.baseline}}async updateSceneTextElements(e=!1){var A,t,i,n;const a=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((e=>"text"===e.type));for(const A of a){const a=getContainerElement(A,this.scene),r=null!==(i=null!==(t=await this.getText(A.id))&&void 0!==t?t:A.originalText)&&void 0!==i?i:A.text,s=null===(n=this.textElements.get(A.id))||void 0===n?void 0:n.wrapAt;this.updateTextElement(A,s?wrapText(r,getFontString({fontSize:A.fontSize,fontFamily:A.fontFamily}),getMaxContainerWidth(a)):r,r,e,null==a?void 0:a.type)}}async getText(e){const A=this.textElements.get(e);return A?this.textMode===TextMode.parsed?(A.parsed||this.textElements.set(e,{raw:A.raw,parsed:(await this.parse(A.raw)).parsed,wrapAt:A.wrapAt}),A.parsed):A.raw:null}findNewElementLinksInScene(){var e;let A=!1;const t=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.link&&e.link.startsWith("[[")&&!this.elementLinks.has(e.id)));if(0===t.length)return A;let i,n=JSON.stringify(this.scene);for(const e of t)i=e.id,e.id.length>8&&(A=!0,i=nanoid(),n=n.replaceAll(e.id,i)),this.elementLinks.set(i,e.link);return this.scene=JSON.parse(n),A}findNewTextElementsInScene(e={}){var A;this.selectedElementIds=e;const t=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((e=>"text"===e.type));let i,n=JSON.stringify(this.scene),a=!1;for(const e of t)if(i=e.id,e.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[e.id]&&(delete this.selectedElementIds[e.id],this.selectedElementIds[i]=!0),n=n.replaceAll(e.id,i),this.textElements.has(e.id)){const A=this.textElements.get(e.id);this.textElements.set(i,{raw:A.raw,parsed:A.parsed,wrapAt:A.wrapAt}),this.textElements.delete(e.id)}if(!this.textElements.has(i)){const A=e.rawText&&""!==e.rawText?e.rawText:e.text,t=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:A,parsed:null,wrapAt:t}),this.parseasync(i,A,t)}}else if(!this.textElements.has(e.id)){const A=e.rawText&&""!==e.rawText?e.rawText:e.text,t=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:A,parsed:null,wrapAt:t}),this.parseasync(i,A,t)}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var e;for(const A of this.elementLinks.keys()){const t=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.id===A&&e.link&&e.link.startsWith("[[")));0===t.length?this.elementLinks.delete(A):this.elementLinks.set(A,t[0].link)}}async updateTextElementsFromScene(){var e,A,t;for(const i of this.textElements.keys()){const n=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"===e.type&&e.id===i));if(0===n.length)this.textElements.delete(i);else{const e=await this.getText(i),a=this.scene.prevTextMode===TextMode.parsed?n[0].rawText:null!==(A=n[0].originalText)&&void 0!==A?A:n[0].text;if(e!==(null!==(t=n[0].originalText)&&void 0!==t?t:n[0].text)){const e=estimateMaxLineLen(n[0].text,n[0].originalText);this.textElements.set(i,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:e})}}}}async parseasync(e,A,t){this.textElements.set(e,{raw:A,parsed:(await this.parse(A)).parsed,wrapAt:t})}parseLinks(e,A,t){return e.substring(A,t.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(t)+(this.showLinkBrackets?"]]":"")}async getTransclusion(e){const A=getLinkParts(e,this.file),t=this.app.metadataCache.getFirstLinkpathDest(A.path,this.file.path);return await getTransclusion(A,this.app,t,this.plugin.settings.pageTransclusionCharLimit)}async parse(e){e=this.parseCheckbox(e);let A="",t=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(t=e,s=!0);!(a=n.next()).done;){if(!t){const e=REGEX_LINK.getLink(a);t=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}if(REGEX_LINK.isTransclusion(a)){let t=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(a))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(t=t.replaceAll(/\n\s*>\s?/gm,"\n")),A+=e.substring(i,a.value.index)+wrapTextAtCharLength(t,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const t=this.parseLinks(e,i,a);t&&(A+=t,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}i=a.value.index+a.value[0].length}return A+=e.substring(i,e.length),r&&(A=this.linkPrefix+A),s&&(A=this.urlPrefix+A),{parsed:A,link:t}}parseCheckbox(e){return this.plugin.settings.parseTODO?e.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):e}quickParse(e){if((e=>{const A=REGEX_LINK.getRes(e);let t;for(;!(t=A.next()).done;)if(REGEX_LINK.isTransclusion(t))return!0;return!1})(e))return[null,null];e=this.parseCheckbox(e);let A="",t=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(t=e,s=!0);!(a=n.next()).done;){if(!t){const e=REGEX_LINK.getLink(a);t=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}const n=this.parseLinks(e,i,a);n&&(A+=n,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),i=a.value.index+a.value[0].length}return A+=e.substring(i,e.length),r&&(A=this.linkPrefix+A),s&&(A=this.urlPrefix+A),[A,t]}generateMD(e=[]){let A="# Text Elements\n";for(const e of this.textElements.keys()){const t=this.scene.elements.filter((A=>A.id===e));let i=this.textElements.get(e).raw;t&&1===t.length&&t[0].link&&t[0].rawText===t[0].originalText&&t[0].link.match(/^\[\[[^\]]*]]$/g)&&(i=`%%***>>>text element-link:${t[0].link}<<<***%%`+i),A+=`${i} ^${e}\n\n`}for(const e of this.elementLinks.keys())A+=`${this.elementLinks.get(e)} ^${e}\n\n`;if(A+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const e of this.equations.keys())A+=`${e}: $$${this.equations.get(e).latex}$$\n`;if(this.files.size>0)for(const e of this.files.keys()){const t=/(^[^#\|]*)/,i=this.files.get(e);A+=`${e}: [[${i.file?i.linkParts.original.replace(t,app.metadataCache.fileToLinktext(i.file,this.file.path)):i.linkParts.original}]]\n`}return A+=this.equations.size>0||this.files.size>0?"\n":"",A+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(e),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async syncFiles(){var e;let A=!1;const t=this.scene,i=t.elements.filter((e=>"image"===e.type)).map((e=>e.fileId));if(this.files.forEach(((e,t)=>{i.contains(t)||(this.files.delete(t),A=!0)})),this.equations.forEach(((e,t)=>{i.contains(t)||(this.equations.delete(t),A=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const n=new Set;i.forEach((e=>{if(n.has(e)){const i=this.getFile(e),a=this.getEquation(e);if(i&&i.file&&("md"!==i.file.extension||this.plugin.isExcalidrawFile(i.file)))return;const r=fileid();t.elements.filter((A=>A.fileId===e))[0].fileId=r,A=!0,n.add(r),i&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,i.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}n.add(e)}));for(const i of Object.keys(t.files))if(!this.hasFile(i)&&!this.hasEquation(i)){A=!0;let n=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;const a=t.files[i].mimeType;switch(a){case"image/png":default:n+=".png";break;case"image/jpeg":n+=".jpg";break;case"image/svg+xml":n+=".svg";break;case"image/gif":n+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,n)).filepath,s=t.files[i].dataURL;await this.app.vault.createBinary(r,getBinaryFileFromDataURL(s));const o=new EmbeddedFile(this.plugin,this.file.path,r);o.setImage(s,a,{height:0,width:0},"dark"===(null===(e=t.appState)||void 0===e?void 0:e.theme),"image/svg+xml"===a),this.setFile(i,o)}return A}async syncElements(e,A){this.scene=e;let t=!1;return this.compatibilityMode||(t=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),t=t||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),t||this.findNewTextElementsInScene(A)}async updateScene(e){this.scene=JSON_parse(e),this.updateElementLinksFromScene();const A=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!A&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(e){var A;return null===(A=this.textElements.get(e))||void 0===A?void 0:A.raw}getParsedText(e){const A=this.textElements.get(e);return A?[wrap(A.parsed,A.wrapAt),A.parsed,null]:[null,null,null]}setTextElement(e,A,t,i){const n=estimateMaxLineLen(A,t),[a,r]=this.quickParse(t);return a?(this.textElements.set(e,{raw:t,parsed:a,wrapAt:n}),[wrap(a,n),a,r]):(this.parse(t).then((A=>{const a=A.parsed;this.textElements.set(e,{raw:t,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(e,A,t){let i=estimateMaxLineLen(A,t);this.textElements.has(e)&&(i=this.textElements.get(e).wrapAt);const n=await this.parse(t);return this.textElements.set(e,{raw:t,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(e){this.textElements.delete(e)}getOpenMode(){const e=this.app.metadataCache.getFileCache(this.file);let A="view-mobile"===this.plugin.settings.defaultMode?this.plugin.device.isPhone?"view":"normal":this.plugin.settings.defaultMode;switch((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-default-mode"]&&(A=e.frontmatter["excalidraw-default-mode"]),A){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const e=this.app.metadataCache.getFileCache(this.file);let A=this.plugin.settings.linkOpacity;return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-linkbutton-opacity"]&&(A=e.frontmatter["excalidraw-linkbutton-opacity"]),A}getOnLoadScript(){const e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-onload-script"]?e.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const e=this.linkPrefix,A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=A.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,e!=this.linkPrefix}setUrlPrefix(){const e=this.urlPrefix,A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=A.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,e!=this.urlPrefix}setAutoexportPreferences(){const e=this.app.metadataCache.getFileCache(this.file);if((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-autoexport"])switch(e.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setShowLinkBrackets(){const e=this.showLinkBrackets,A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=A.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,e!=this.showLinkBrackets}setFile(e,A){if(!A)return;if(this.files.set(e,A),!A.file)return;const t=A.linkParts.original.split("#");this.plugin.filesMaster.set(e,{path:A.file.path+(A.shouldScale()?"":"|100%"),blockrefData:1===t.length?null:t[1],hasSVGwithBitmap:A.isSVGwithBitmap})}getFiles(){return Object.values(this.files)}getFile(e){let A=this.files.get(e);if(A)return A;const t=this.plugin.filesMaster.get(e);return t?(A=new EmbeddedFile(this.plugin,this.file.path,t.blockrefData?t.path+"#"+t.blockrefData:t.path),this.files.set(e,A),A):A}getFileEntries(){return this.files.entries()}deleteFile(e){this.files.delete(e)}hasFile(e){if(this.files.has(e))return!0;if(this.plugin.filesMaster.has(e)){const A=this.plugin.filesMaster.get(e),t=A.path.split("|")[0].split("#")[0];if(!this.app.vault.getAbstractFileByPath(t))return this.plugin.filesMaster.delete(e),!0;const i=A.path.endsWith("100%"),n=new EmbeddedFile(this.plugin,this.file.path,(A.blockrefData?t+"#"+A.blockrefData:t)+(i?"|100%":""));return this.files.set(e,n),!0}return!1}setEquation(e,A){this.equations.set(e,{latex:A.latex,isLoaded:A.isLoaded}),this.plugin.equationsMaster.set(e,A.latex)}getEquation(e){let A=this.equations.get(e);if(A)return A;const t=this.plugin.equationsMaster.get(e);return t?(this.equations.set(e,{latex:t,isLoaded:!1}),{latex:t,isLoaded:!1}):A}getEquationEntries(){return this.equations.entries()}deleteEquation(e){this.equations.delete(e)}hasEquation(e){return!!this.equations.has(e)||!!this.plugin.equationsMaster.has(e)&&(this.equations.set(e,{latex:this.plugin.equationsMaster.get(e),isLoaded:!1}),!0)}}const getTransclusion=async(e,A,t,i)=>{var n,a,r,s,o,l,c,d,h;if(!e.path)return{contents:e.original.trim(),lineNum:0};if(!(t&&t instanceof obsidian_module.TFile))return{contents:e.original.trim(),lineNum:0};const u=await A.vault.read(t);if(!e.ref)return i?{contents:u.substring(0,i).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const g=(await A.metadataCache.blockCache.getForFile({isCancelled:()=>!1},t)).blocks.filter((e=>"comment"!=e.node.type));if(!g)return{contents:e.original.trim(),lineNum:0};if(e.isBlockRef){let A=null===(n=g.filter((A=>A.node.id==e.ref))[0])||void 0===n?void 0:n.node;if(!A)return{contents:e.original.trim(),lineNum:0};["blockquote"].includes(A.type)&&(A=A.children[0]);const t=A.position.start.offset,i=A.position.start.line,a=A.position.end.offset;return{contents:u.substring(t,a).replaceAll(/ \^\S*$|^\^\S*$/gm,"").trim(),lineNum:i}}const p=g.filter((e=>0===e.display.search(/^#+\s/)));let w=null,m=0,f=null,B=1;for(let A=0;AB;)e++;return e===p.length&&p[e-1].node.depth>B?{leadingHashes:"#".repeat(B)+" ",contents:u.substring(w).trim(),lineNum:m}:(f=p[e].node.position.start.offset-1,{leadingHashes:"#".repeat(B)+" ",contents:u.substring(w,f).trim(),lineNum:m})}const t=p[A].node.children[0],i=null===(r=null===(a=p[A].node.data)||void 0===a?void 0:a.hProperties)||void 0===r?void 0:r.dataHeading,n=null==t?void 0:t.children;!w&&((null===(s=null==t?void 0:t.value)||void 0===s?void 0:s.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null===(o=null==t?void 0:t.title)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null==i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||n&&(null===(c=null===(l=n[0])||void 0===l?void 0:l.value)||void 0===c?void 0:c.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref)&&(w=null===(d=p[A].node.children[0])||void 0===d?void 0:d.position.start.offset,B=p[A].node.depth,m=null===(h=p[A].node.children[0])||void 0===h?void 0:h.position.start.line)}return w?{leadingHashes:"#".repeat(B)+" ",contents:u.substring(w).trim(),lineNum:m}:{contents:e.original.trim(),lineNum:0}};class Prompt extends obsidian_module.Modal{constructor(e,A,t,i,n){super(e),this.prompt_text=A,this.default_value=t,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var e;let A=this.contentEl.createDiv();A.addClass("excalidraw-prompt-div"),this.prompt_desc&&(A=A.createDiv(),A.style.width="100%",A.createEl("p").innerHTML=this.prompt_desc);const t=A.createEl("form");t.addClass("excalidraw-prompt-form"),t.type="submit",t.onsubmit=e=>{e.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=t.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(e=this.default_value)&&void 0!==e?e:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(e){this.resolve=e,this.open()}}class GenericInputPrompt extends obsidian_module.Modal{constructor(e,A,t,i,n){super(e),this.header=A,this.didSubmit=!1,this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.submitEnterCallback=e=>{"Enter"===e.key&&(e.preventDefault(),this.submit())},this.placeholder=t,this.input=i,this.buttons=n,this.waitForClose=new Promise(((e,A)=>{this.resolvePromise=e,this.rejectPromise=A})),this.display(),this.open()}static Prompt(e,A,t,i,n){return new GenericInputPrompt(e,A,t,i,n).waitForClose}display(){this.contentEl.empty(),this.titleEl.textContent=this.header;const e=this.contentEl.createDiv();this.inputComponent=this.createInputField(e,this.placeholder,this.input),this.createButtonBar(e)}createInputField(e,A,t){const i=new obsidian_module.TextComponent(e);return i.inputEl.style.width="100%",i.setPlaceholder(null!=A?A:"").setValue(null!=t?t:"").onChange((e=>this.input=e)).inputEl.addEventListener("keydown",this.submitEnterCallback),i}createButton(e,A,t){const i=new obsidian_module.ButtonComponent(e);return i.setButtonText(A).onClick(t),i}createButtonBar(e){const A=e.createDiv();if(this.buttons&&this.buttons.length>0){let e=null;for(const t of this.buttons){const i=new obsidian_module.ButtonComponent(A);i.setButtonText(t.caption).onClick((e=>{const A=t.action(this.input);A&&(this.input=A),this.submit()})),e=null!=e?e:i}e&&(e.setCta().buttonEl.style.marginRight="0")}else this.createButton(A,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(A,"Cancel",this.cancelClickCallback),A.style.display="flex",A.style.flexDirection="row-reverse",A.style.justifyContent="flex-start",A.style.marginTop="1rem"}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var e,A;null===(A=null===(e=this.inputComponent)||void 0===e?void 0:e.inputEl)||void 0===A||A.removeEventListener("keydown",this.submitEnterCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian_module.FuzzySuggestModal{constructor(e,A,t,i,n){var a;super(e),this.displayItems=A,this.items=t,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((e,A)=>{this.resolvePromise=e,this.rejectPromise=A})),this.open()}static Suggest(e,A,t,i,n){return new GenericSuggester(e,A,t,i,n).promise}getItemText(e){return this.displayItems[this.items.indexOf(e)]}getItems(){return this.items}selectSuggestion(e,A){this.resolved=!0,super.selectSuggestion(e,A)}onChooseItem(e){this.resolved=!0,this.resolvePromise(e)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian_module.Modal{constructor(e,A,t,i,n){super(e.app),this.plugin=e,this.path=A,this.newPane=t,this.newWindow=i,this.view=n}onOpen(){this.createForm()}async onClose(){}openFile(e){e&&(this.newWindow?app.workspace.openPopoutLeaf():this.newPane?getNewOrAdjacentLeaf(this.plugin,this.view.leaf):this.view.leaf).openFile(e,{active:!0})}createForm(){this.titleEl.setText("New File"),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:"File does not exist. Do you want to create it?"}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(e=>{e.style.textAlign="right";const A=()=>this.path&&""!==this.path?!!this.view.file||(new obsidian_module.Notice("Unknown error. It seems as if your drawing was closed or the drawing file is missing"),!1):(new obsidian_module.Notice("Error: Filename for new file may not be empty"),!1),t=async e=>{if(!this.path.includes("/")){const e=new RegExp(`${this.view.file.name}$`,"g");this.path=this.view.file.path.replace(e,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,e)};e.createEl("button",{text:"Create Markdown"}).onclick=async()=>{if(!A)return;const e=await t("");this.openFile(e),this.close()},e.createEl("button",{text:"Create Excalidraw"}).onclick=async()=>{if(!A)return;const e=await t(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(e),this.close()},e.createEl("button",{text:"Never Mind"}).onclick=()=>{this.close()}}))}}class ScriptEngine{constructor(e){this.plugin=e,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const e=e=>{if(!e.endsWith(".svg"))return;const A=app.vault.getAbstractFileByPath(getIMGFilename(e,"md"));A&&A instanceof obsidian_module.TFile&&(this.unloadScript(this.getScriptName(A),A.path),this.loadScript(A))};this.plugin.registerEvent(app.vault.on("delete",(async A=>{A instanceof obsidian_module.TFile&&A.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(A),A.path),e(A.path))}))),this.plugin.registerEvent(app.vault.on("create",(async A=>{A instanceof obsidian_module.TFile&&A.path.startsWith(this.scriptPath)&&(this.loadScript(A),e(A.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(A,t)=>{if(!(A instanceof obsidian_module.TFile))return;const i=t.startsWith(this.scriptPath),n=A.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(t),t),e(t)),n&&(this.loadScript(A),e(A.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)&&"md"===e.extension));this.scriptPath=null}loadScripts(){var e;null===(e=this.getListofScripts())||void 0===e||e.forEach((e=>this.loadScript(e)))}getScriptName(e){let A="",t="";e instanceof obsidian_module.TFile?(A=e.basename,t=e.path):(A=splitFolderAndFilename(e).basename,t=e);const i=t.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+A:A}async addScriptIconToMap(e,A){const t=getIMGFilename(e,"svg"),i=app.vault.getAbstractFileByPath(t),n=i&&i instanceof obsidian_module.TFile?await app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap),this.scriptIconMap[e]={name:A,svgString:n},this.updateToolPannels()}loadScript(e){if("md"!==e.extension)return;const A=this.getScriptName(e);this.addScriptIconToMap(e.path,A),this.plugin.addCommand({id:A,name:`(Script) ${A}`,checkCallback:t=>{if(t)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const t=await app.vault.read(e);t&&this.executeScript(i,t,A,e)})(),!0)}})}unloadScripts(){const e=app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)));e.forEach((e=>{this.unloadScript(this.getScriptName(e),e.path)}))}unloadScript(e,A){if(!A.endsWith(".md"))return;delete this.scriptIconMap[A],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const t=`${PLUGIN_ID}:${e}`;app.commands.commands[t]&&delete app.commands.commands[t]}async executeScript(e,A,t,i){if(!e||!A||!t)return;this.plugin.ea.reset(),this.plugin.ea.setView(e),this.plugin.ea.activeScript=t;const n=Object.getPrototypeOf((async()=>{})).constructor;let a=null;return a=await new n("ea","utils",A)(this.plugin.ea,{inputPrompt:(e,A,t,i)=>ScriptEngine.inputPrompt(app,e,A,t,i),suggester:(e,A,t,i)=>ScriptEngine.suggester(app,e,A,t,i),scriptFile:i}),this.plugin.ea.activeScript=null,a}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((e=>{var A,t;null===(t=null===(A=e.view.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===t||t.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(e,A,t,i,n){try{return await GenericInputPrompt.Prompt(e,A,t,i,n)}catch(e){return}}static async suggester(e,A,t,i,n){try{return await GenericSuggester.Suggest(e,A,t,i,n)}catch(e){return}}}var t$c={d:(e,A)=>{for(var t in A)t$c.o(A,t)&&!t$c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},r$d={};t$c.d(r$d,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(e,A,t){return Math.max(e,Math.min(A,t))}function n$c(e,A){return+e.toFixed(A>=0?A:0)}function a$c(e){const A=e%360;return A<0?A+360:A}function i$a(e){return void 0!==e?s$a(0,e,1):1}function o$b(e){return Math.floor(Math.random()*e)}function h$4(e){var A;const{Cmin:t,Cmax:i,H:n,delta:a}=function(e){const[A,t,i]=Object.values(e).map((e=>e/255)),n=Math.max(A,t,i),a=Math.min(A,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===A?(t-i)/r%6:n===t?(i-A)/r+2:(A-t)/r+4,delta:r}}(e),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*n),s:100*s,l:100*r,a:null!==(A=e.a)&&void 0!==A?A:1}}function u$8(e){const{h:A,s:t,l:i,a:n}=e,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(A/60%2-1)),l=a-s/2,c=A<60||300<=A&&A<360?s:120<=A&&A<240?0:o,d=240<=A&&A<360?0:60<=A&&A<180?s:o,h=A<120?0:180<=A&&A<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}function l$5(e){const[A,t,i,n]=Object.values(e).map((e=>parseInt(e,16)));return{r:A,g:t,b:i,a:n?n/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:e,s:A,l:t,a:i}){return[u$8({h:a$c(e),s:s$a(0,A,100),l:s$a(0,t,100),a:i$a(i)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:e,g:A,b:t,a:i}){return[{r:s$a(0,e,255),g:s$a(0,A,255),b:s$a(0,t,255),a:i$a(i)},"rgb"]}var p$3,v$2,m$1=function(e,A,t,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof A?e!==A||!n:!A.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,t):n?n.value=t:A.set(e,t),t},y$1=function(e,A,t,i){if("a"===t&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof A?e!==A||!i:!A.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?i:"a"===t?i.call(e):i?i.value:A.get(e)};class w$1{constructor(e){var A,t;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const i=w$1.Parsers.map((A=>A(e))).find((e=>"invalid"!==e[1]));i?(A=this,t=this,[{set value(e){m$1(A,p$3,e,"f")}}.value,{set value(e){m$1(t,v$2,e,"f")}}.value]=i):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:e=!1}={}){return function(e,A=!1){let{r:t,g:i,b:n,a:a}=e;a&&(a*=255),A&&([t,i,n,a]=[t,i,n,a].map((e=>e&&Math.round(e))));const[r,s,o,l]=[t,i,n,null!=a?a:255].map((e=>e.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),e)}stringRGB({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(y$1(this,p$3,"f")).map(((e,t)=>n$c(e,A[t])));return e?`rgba(${t}, ${i}, ${n}, ${a})`:`rgb(${t}, ${i}, ${n})`}stringHEX({alpha:e=!0}={}){const[A,t,i,n]=Object.values(this.hexa({round:!0}));return`#${A}${t}${i}${e?n:""}`}stringHSL({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hsla()).map(((e,t)=>n$c(e,A[t])));return e?`hsla(${t}, ${i}%, ${n}%, ${a})`:`hsl(${t}, ${i}%, ${n}%)`}hueTo(e){var A;const{h:t,s:i,l:n,a:a}=this.hsla(),r="number"==typeof e?a$c(e):Number(null!==(A=e$d[e].match(/\d{1,3}/))&&void 0!==A?A:t);return m$1(this,p$3,u$8({h:r,s:i,l:n,a:a}),"f"),this}hueBy(e){const{h:A,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:a$c(A+e),s:t,l:i,a:n}),"f"),this}saturationTo(e){const{h:A,l:t,a:i}=this.hsla();return m$1(this,p$3,u$8({h:A,s:s$a(0,e,100),l:t,a:i}),"f"),this}saturateBy(e){const{h:A,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:A,s:s$a(0,t+e,100),l:i,a:n}),"f"),this}desaturateBy(e){return this.saturateBy(-1*e)}lightnessTo(e){const{h:A,s:t,a:i}=this.hsla();return m$1(this,p$3,u$8({h:A,s:t,l:s$a(0,e,100),a:i}),"f"),this}lighterBy(e){const{h:A,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:A,s:t,l:s$a(0,i+e,100),a:n}),"f"),this}darkerBy(e){return this.lighterBy(-1*e)}alphaTo(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,e,1)}),"f"),this}alphaBy(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+e,1)}),"f"),this}invert({alpha:e=!1}={}){const{r:A,g:t,b:i,a:n}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-A,g:255-t,b:255-i,a:e?1-n:n},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(e){return this.hueBy(e)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(e){(e=e.filter(((e,A,t)=>t.indexOf(e)===A))).forEach((e=>e(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:A,g:t,b:i}=e;return void 0!==A&&void 0!==t&&void 0!==i&&"number"==typeof A}(e))return b$5(e);if("string"==typeof e){g$2.lastIndex=0;const A=g$2.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?2.55:.01):+e));return b$5({r:e,g:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:A,g:t,b:i}=e;return void 0!==A&&void 0!==t&&void 0!==i&&"string"==typeof A}(e))return[l$5(e),"hex"];if("string"==typeof e){c$a.lastIndex=0;const A=c$a.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map((e=>1===e.length?e.repeat(2):e));return[l$5({r:e,g:t,b:i,a:null!=n?n:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:A,s:t,l:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return d$2(e);if("string"==typeof e){f$3.lastIndex=0;const A=f$3.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?3.59:A<3?1:.01):+e));return d$2({h:e,s:t,l:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=e=>new w$1(e);r$d.QA;var O$1=r$d.ZP,B=r$d.qt;r$d.MX;var e$c={d:(e,A)=>{for(var t in A)e$c.o(A,t)&&!e$c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},a$b={};function t$b(e){const A=e%360;return A<0?A+360:A}e$c.d(a$b,{Z:()=>n$b});const n$b=e=>{e.prototype.harmony=function({type:A="analogous",effect:t="tones",amount:i=5}={}){const{h:n,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===A&&(o=i,i=Math.max(2,Math.min(o,10))),A){case"analogous":return[-30,0,30].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"complementary":return[0,180].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"triad":return[0,120,240].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((A=>new e({h:t$b(n+A),s:a,l:r,a:s})));case"monochromatic":{const A="tones"===t?a:r;let o=("tints"===t?100-A:A)/i;o="tints"===t?o:-1*o;const l=[A];for(let e=0;enew e({h:n,s:A,l:r,a:s}))):l.map((A=>new e({h:n,s:a,l:A,a:s})))}}var o}};var r$c=a$b.Z,a$a={d:(e,A)=>{for(var t in A)a$a.o(A,t)&&!a$a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$b={x:.96422,y:1,z:.82521};function u$7(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function s$9(e,A,t){return Math.max(e,Math.min(A,t))}function o$a(e){const A=e%360;return A<0?A+360:A}function l$4(e){const[A,t,i]=Object.values(e).map((e=>e/255)),n=Math.max(A,t,i),a=Math.min(A,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===A?(t-i)/r%6:n===t?(i-A)/r+2:(A-t)/r+4,delta:r}}function b$4(e){var A;const{Cmin:t,Cmax:i,H:n,delta:a}=l$4(e),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*n),s:100*s,l:100*r,a:null!==(A=e.a)&&void 0!==A?A:1}}function h$3(e){var A;const{Cmax:t,H:i,delta:n}=l$4(e),a=0===n?0:n/t;return{h:o$a(60*i),s:100*a,v:100*t,a:null!==(A=e.a)&&void 0!==A?A:1}}function v$1(e){const{h:A,a:t}=b$4(e),{r:i,g:n,b:a}=e;return{h:A,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:t}}function i$9(e){const[A,t,i]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,i]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}({x:A,y:t,z:i,a:e.a})}function m(e){const A=Object.values(i$9(e)).map(((e,A)=>e/(100*Object.values(r$b)[A]))).map((e=>e>n$a?Math.cbrt(e):(c$9*e+16)/116));return{l:116*A[1]-16,a:500*(A[0]-A[1]),b:200*(A[1]-A[2]),alpha:e.a}}function p$2(e){const{l:A,a:t,b:i}=m(e),n=180*Math.atan2(i,t)/Math.PI;return{l:A,c:Math.sqrt(Math.pow(t,2)+Math.pow(i,2)),h:o$a(n),a:e.a}}function f$2(e){const[A,t,i]=Object.values(i$9(e)).map((e=>e/100)),n=t/r$b.y,a=A&&t&&i?A+15*t+3*i:19,r=4*A/a,s=9*t/a,o=r$b.x+15*r$b.y+3*r$b.z,l=4*r$b.x/o,c=9*r$b.y/o;let d=n>n$a?116*Math.cbrt(n)-16:c$9*n,h=13*d*(r-l),u=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),u===Number(-0)&&(u=0),{l:d,u:h,v:u,a:e.a}}function M(e){const{x:A,y:t,z:i}=i$9(e),[n,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[A,t,i]);return{u:n,v:a,w:r,a:e.a}}function w(e){let{r:A,g:t,b:i}=e;const n=Math.min(A,t,i);[A,t,i]=[A,t,i].map((e=>e-n));const a=Math.max(A,t,i);let r=Math.min(A,t);A-=r,t-=r,i&&t&&(i/=2,t/=2),r+=t,i+=t;const s=Math.max(A,r,i);if(s){const e=a/s;[A,r,i]=[A,r,i].map((A=>A*e))}return[A,r,i]=[A,r,i].map((e=>e+n)),{r:A,y:r,b:i,a:e.a}}function O(e){const{r:A,g:t,b:i,a:n}=e,a=1-Math.max(A,t,i)/255,[r,s,o]=1===a?[0,0,0]:[A,t,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}function j(e){const{h:A,s:t,v:i,a:n}=e,a=i/100,r=a*(t/100),s=r*(1-Math.abs(A/60%2-1)),o=a-r,l=A<60||300<=A&&A<360?r:120<=A&&A<240?0:s,c=240<=A&&A<360?0:60<=A&&A<180?r:s,d=A<120?0:180<=A&&A<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}function x(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,i]).map((e=>{return s$9(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:n,g:a,b:r,a:e.a}}function y(e){const{l:A,a:t,b:i}=e,n=(A+16)/116,a=n+t/500,r=n-i/200,s=Object.values(r$b),[o,l,c]=[a,n,r].map(((e,A)=>(e>e$b?Math.pow(e,3):3*Math.pow(e$b,2)*(e-4/29))*s[A]*100));return x({x:o,y:l,z:c,a:e.alpha})}const k=e=>{e.prototype.mix=function({color:A="#fff",ratio:t=.5,colorspace:i="luv"}={}){const n=this.rgba(),a=(A instanceof e?A:new e(A)).rgba();let r,s;switch(t=s$9(0,t,1),i){case"hsl":r=Object.values(b$4(n)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(n)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(n)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(n)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(n)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(n)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(n)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(n)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(n)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(n)),s=Object.values(O(a));break;default:r=Object.values(n),s=Object.values(a)}const[o,l,c,d,h]=r.map(((e,A)=>r[A]*(1-t)+s[A]*t));switch(i){case"hsl":return new e(function(e){const{h:A,s:t,l:i,a:n}=e,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(A/60%2-1)),l=a-s/2,c=A<60||300<=A&&A<360?s:120<=A&&A<240?0:o,d=240<=A&&A<360?0:60<=A&&A<180?s:o,h=A<120?0:180<=A&&A<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new e(j({h:o,s:l,v:c,a:d}));case"hwb":return new e(function(e){const{h:A,b:t,w:i,a:n}=e;return j({h:A,s:100===t?0:100-i/(100-t)*100,v:100-t,a:n})}({h:o,w:l,b:c,a:d}));case"lab":return new e(y({l:o,a:l,b:c,alpha:d}));case"lch":return new e(function(e){const{l:A,c:t,h:i}=e;return y({l:A,a:t*Math.cos(i*Math.PI/180),b:t*Math.sin(i*Math.PI/180),alpha:e.a})}({l:o,c:l,h:c,a:d}));case"luv":return new e(function(e){const{l:A,u:t,v:i}=e,n=A>c$9*n$a?Math.pow((A+16)/116,3):A/c$9,a=r$b.x+15*r$b.y+3*r$b.z,r=(52*A/(t&&A?t+13*A*(4*r$b.x/a):1)-1)/3,s=-5*n,o=n*(39*A/(i&&A?i+13*A*(9*r$b.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*n,z:100*(r*l+s),a:e.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new e(function(e){let{r:A,y:t,b:i}=e;const n=Math.min(A,t,i);[A,t,i]=[A,t,i].map((e=>e-n));const a=Math.max(A,t,i);let r=Math.min(t,i);t-=r,i-=r,i&&r&&(i*=2,r*=2),A+=t,r+=t;const s=Math.max(A,r,i);if(s){const e=a/s;[A,r,i]=[A,r,i].map((A=>A*e))}return[A,r,i]=[A,r,i].map((e=>e+n)),{r:A,g:r,b:i,a:e.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new e(function(e){const{u:A,v:t,w:i}=e,[n,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[A,t,i]);return x({x:n,y:a,z:r,a:e.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new e(x({x:o,y:l,z:c,a:d}));case"cmyk":return new e(function(e){const{c:A,m:t,y:i,k:n,a:a}=e,[r,s,o]=[A,t,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new e({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$a={d:(e,A)=>{for(var t in A)r$a.o(A,t)&&!r$a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},b$3={};r$a.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(e){return(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function o$9(e,A=[0,0,0,1]){var t,i;return null!==(i=null===(t=e.match(/\d{1,3}/g))||void 0===t?void 0:t.map((e=>+e)))&&void 0!==i?i:A}const n$9=e=>{e.prototype.brightness=function({precision:e=4,percentage:A=!1}={}){const{r:t,g:i,b:n}=this.rgba(),a=+((.299*t+.587*i+.114*n)/255).toFixed(e);return A?100*a:a},e.prototype.luminance=function({precision:e=4,percentage:A=!1}={}){const{r:t,g:i,b:n}=this.rgba(),a=+(.2126*t$9(t)+.7152*t$9(i)+.0722*t$9(n)).toFixed(e);return A?100*a:a},e.prototype.contrast=function({bgColor:A="#fff",precision:t=4,ratio:i=!1}={}){const n=this.luminance(),a=(A instanceof e?A:new e(A)).luminance(),r=((Math.max(n,a)+.05)/(Math.min(n,a)+.05)).toFixed(t);return i?r+":1":+r},e.prototype.readableOn=function({bgColor:e="#fff",size:A="body",level:t="minimum"}={}){const i=this.contrast({bgColor:e});return"body"===A&&"enhanced"===t?i>=7:"large"===A&&"minimum"===t?i>=3:i>=4.5},e.prototype.equalTo=function(A="#fff"){const t=Object.values(this.rgba()),i=Object.values((A instanceof e?A:new e(A)).rgba());return t.toString()===i.toString()},e.prototype.isLight=function(){return this.brightness()>=.5},e.prototype.isDark=function(){return!this.isLight()},e.prototype.isCool=function(){const{h:e}=this.hsla();return 75<=e&&e<255},e.prototype.isWarm=function(){return!this.isCool()},e.prototype.isTinted=function(){return this.hsla().l>50},e.prototype.isShaded=function(){return this.hsla().l<50},e.prototype.isToned=function(){return this.hsla().s<100},e.prototype.isPureHue=function({reason:e=!0}={}){return this.isTinted()?!!e&&{pure:!1,reason:"tinted"}:this.isShaded()?!!e&&{pure:!1,reason:"shaded"}:this.isToned()?!!e&&{pure:!1,reason:"toned"}:!e||{pure:!0,reason:"N/A"}},e.prototype.closestCool=function(){const{h:e}=this.hsla();return this.isCool()?this:this.hueTo(e<75?75:254)},e.prototype.closestWarm=function(){const{h:e}=this.hsla();return this.isWarm()?this:this.hueTo(e<165?74:255)},e.prototype.closestPureHue=function(){const{h:A,a:t}=this.hsla(),{r:i,g:n,b:a,a:r}=function(e){const{h:A,s:t,l:i,a:n}=e,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(A/60%2-1)),l=a-s/2,c=A<60||300<=A&&A<360?s:120<=A&&A<240?0:o,d=240<=A&&A<360?0:60<=A&&A<180?s:o,h=A<120?0:180<=A&&A<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:A,s:100,l:50,a:t});return new e({r:i,g:n,b:a,a:r})},e.prototype.closestWebSafe=function(){const{r:A,g:t,b:i,a:n}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:A,g:t,b:i,a:n};for(let e=0;e{for(var t in A)r$9.o(A,t)&&!r$9.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},g={};r$9.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(e,A=[0,0,0,1]){var t,i;return null!==(i=null===(t=e.match(/\d{1,3}/g))||void 0===t?void 0:t.map((e=>+e)))&&void 0!==i?i:A}const a$9=e=>{e.prototype.name=function({exact:e=!0}={}){const{r:A,g:t,b:i,a:n}=this.rgba();if(0===n)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(e){const e=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((A=>e$9[A]===e))}else{let e=Number.POSITIVE_INFINITY;for(let n=0;n{for(var t in A)t$8.o(A,t)&&!t$8.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$8=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function s$8(e,A,t){return Math.max(e,Math.min(A,t))}function u$6(e){const A=e%360;return A<0?A+360:A}function i$8(e){const{l:A,a:t,b:i}=function(e){const A=Object.values(function(e){const[A,t,i]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,i]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}({x:A,y:t,z:i,a:e.a})}(e)).map(((e,A)=>e/(100*Object.values(e$8)[A]))).map((e=>e>r$8?Math.cbrt(e):(o$8*e+16)/116));return{l:116*A[1]-16,a:500*(A[0]-A[1]),b:200*(A[1]-A[2]),alpha:e.a}}(e),n=180*Math.atan2(i,t)/Math.PI;return{l:A,c:Math.sqrt(Math.pow(t,2)+Math.pow(i,2)),h:u$6(n),a:e.a}}function h$2(e){const{l:A,c:t,h:i}=e;return function(e){const{l:A,a:t,b:i}=e,n=(A+16)/116,a=n+t/500,r=n-i/200,s=Object.values(e$8),[o,l,c]=[a,n,r].map(((e,A)=>(e>n$8?Math.pow(e,3):3*Math.pow(n$8,2)*(e-4/29))*s[A]*100));return function(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,i]).map((e=>{return s$8(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}({l:A,a:t*Math.cos(i*Math.PI/180),b:t*Math.sin(i*Math.PI/180),alpha:e.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:e,c:A,h:t,a:i}){return[h$2({l:s$8(0,e,100),c:s$8(0,A,230),h:u$6(t),a:(n=i,void 0!==n?s$8(0,n,1):1)}),"lch"];var n}function f$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:A,c:t,h:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return p$1(e);if("string"==typeof e){l$2.lastIndex=0;const A=l$2.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?1:1===A?2.3:2===A?3.59:.01):+e));return p$1({l:e,c:t,h:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=e=>{e.prototype.lcha=function(){return i$8(this.rgba())},e.prototype.stringLCH=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.lcha()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`lcha(${t}%, ${i}, ${n}, ${a})`:`lch(${t}%, ${i}, ${n})`},e.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(e,A)=>{for(var t in A)t$7.o(A,t)&&!t$7.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$7=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function a$7(e,A,t){return Math.max(e,Math.min(A,t))}function u$5(e){const{l:A,u:t,v:i}=e,n=A>e$7*r$7?Math.pow((A+16)/116,3):A/e$7,a=(52*A/(t&&A?t+13*A*.20916005282038627:1)-1)/3,r=-5*n,s=n*(39*A/(i&&A?i+13*A*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,i]).map((e=>{return a$7(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:n,g:a,b:r,a:e.a}}({x:100*o,y:100*n,z:100*(a*o+r),a:e.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:e,u:A,v:t,a:i}){return[u$5({l:a$7(0,e,100),u:a$7(-100,A,100),v:a$7(-100,t,100),a:(n=i,void 0!==n?a$7(0,n,1):1)}),"luv"];var n}function i$7(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:A,u:t,v:i}=e;return void 0!==A&&void 0!==t&&null!=i}(e))return s$7(e);if("string"==typeof e){c$7.lastIndex=0;const A=c$7.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?1:.01):+e));return s$7({l:e,u:t,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=e=>{e.prototype.luva=function(){return function(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,i]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}({x:A,y:t,z:i,a:e.a})}(e)).map((e=>e/100)),n=t/1,a=A&&t&&i?A+15*t+3*i:19,r=4*A/a,s=9*t/a;let o=n>r$7?116*Math.cbrt(n)-16:e$7*n,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:e.a}}(this.rgba())},e.prototype.stringLUV=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.luva()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(luva ${t}%, ${i}%, ${n}%, ${a})`:`color(luv ${t}%, ${i}%, ${n}%)`},e.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(e,A)=>{for(var t in A)t$6.o(A,t)&&!t$6.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$6=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function s$6(e,A,t){return Math.max(e,Math.min(A,t))}function u$4(e){return void 0!==e?s$6(0,e,1):1}function i$6(e){const A=Object.values(function(e){const[A,t,i]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,i]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}({x:A,y:t,z:i,a:e.a})}(e)).map(((e,A)=>e/(100*Object.values(o$6)[A]))).map((e=>e>r$6?Math.cbrt(e):(e$6*e+16)/116));return{l:116*A[1]-16,a:500*(A[0]-A[1]),b:200*(A[1]-A[2]),alpha:e.a}}function l(e){const{l:A,a:t,b:i}=e,n=(A+16)/116,a=n+t/500,r=n-i/200,s=Object.values(o$6),[o,l,c]=[a,n,r].map(((e,A)=>(e>n$6?Math.pow(e,3):3*Math.pow(n$6,2)*(e-4/29))*s[A]*100));return function(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,i]).map((e=>{return s$6(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:e,a:A,b:t,alpha:i}){return[l({l:s$6(0,e,100),a:s$6(-160,A,160),b:s$6(-160,t,160),alpha:u$4(i)}),"lab"]}function f(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:A,a:t,b:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return b(e);if("string"==typeof e){p.lastIndex=0;const A=p.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?1:.01):+e));return b({l:e,a:t,b:i,alpha:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=e=>{e.prototype.laba=function(){return i$6(this.rgba())},e.prototype.stringLAB=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.laba()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`laba(${t}%, ${i}, ${n}, ${a})`:`lab(${t}%, ${i}, ${n})`},e.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(e,A)=>{for(var t in A)t$5.o(A,t)&&!t$5.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$5={};function r$5(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function o$5(e,A,t){return Math.max(e,Math.min(A,t))}function e$5(e){const{u:A,v:t,w:i}=e,[n,a,r]=r$5([[1.5,0,0],[0,1,0],[1.5,-3,2]],[A,t,i]);return function(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,i]).map((e=>{return o$5(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:n,g:a,b:r,a:e.a}}({x:n,y:a,z:r,a:e.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:e,v:A,w:t,a:i}){return[e$5({u:o$5(0,e,200/3*.96422),v:o$5(0,A,100),w:o$5(-48.211,t,191.2605),a:(n=i,void 0!==n?o$5(0,n,1):1)}),"uvw"];var n}function c$5(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{u:A,v:t,w:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return u$3(e);if("string"==typeof e){a$5.lastIndex=0;const A=a$5.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return u$3({u:e,v:t,w:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=e=>{e.prototype.uvwa=function(){return function(e){const{x:A,y:t,z:i}=function(e){const[A,t,i]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,i]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}({x:A,y:t,z:i,a:e.a})}(e),[n,a,r]=r$5([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[A,t,i]);return{u:n,v:a,w:r,a:e.a}}(this.rgba())},e.prototype.stringUVW=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.uvwa()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(uvwa ${t}, ${i}, ${n}, ${a})`:`color(uvw ${t}, ${i}, ${n})`},e.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(e,A)=>{for(var t in A)t$4.o(A,t)&&!t$4.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$4={};function r$4(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function o$4(e,A,t){return Math.max(e,Math.min(A,t))}function e$4(e){const[A,t,i]=Object.values(function(e){const[A,t,i]=r$4([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$4([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,i]).map((e=>{return o$4(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:n,g:a,b:r,a:e.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:e,y:A,z:t,a:i}){return[e$4({x:o$4(0,e,96.422),y:o$4(0,A,100),z:o$4(0,t,82.521),a:(n=i,void 0!==n?o$4(0,n,1):1)}),"xyz"];var n}function c$4(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{x:A,y:t,z:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return s$4(e);if("string"==typeof e){a$4.lastIndex=0;const A=a$4.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return s$4({x:e,y:t,z:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=e=>{e.prototype.xyza=function(){return function(e){const[A,t,i]=r$4([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,i]=r$4([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:i,a:e.a}}({x:A,y:t,z:i,a:e.a})}(this.rgba())},e.prototype.stringXYZ=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.xyza()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(xyza ${t}, ${i}, ${n}, ${a})`:`color(xyz ${t}, ${i}, ${n})`},e.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(e,A)=>{for(var t in A)t$3.o(A,t)&&!t$3.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$3={};function r$3(e,A,t){return Math.max(e,Math.min(A,t))}function a$3(e){const A=e%360;return A<0?A+360:A}function o$3(e){const{h:A,a:t}=function(e){var A;const{Cmin:t,Cmax:i,H:n,delta:a}=function(e){const[A,t,i]=Object.values(e).map((e=>e/255)),n=Math.max(A,t,i),a=Math.min(A,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===A?(t-i)/r%6:n===t?(i-A)/r+2:(A-t)/r+4,delta:r}}(e),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*n),s:100*s,l:100*r,a:null!==(A=e.a)&&void 0!==A?A:1}}(e),{r:i,g:n,b:a}=e;return{h:A,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:t}}function e$3(e){const{h:A,b:t,w:i,a:n}=e;return function(e){const{h:A,s:t,v:i,a:n}=e,a=i/100,r=a*(t/100),s=r*(1-Math.abs(A/60%2-1)),o=a-r,l=A<60||300<=A&&A<360?r:120<=A&&A<240?0:s,c=240<=A&&A<360?0:60<=A&&A<180?r:s,d=A<120?0:180<=A&&A<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}({h:A,s:100===t?0:100-i/(100-t)*100,v:100-t,a:n})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:e,w:A,b:t,a:i}){return[e$3({h:a$3(e),w:r$3(0,A,100),b:r$3(0,t,100),a:(n=i,void 0!==n?r$3(0,n,1):1)}),"hwb"];var n}function c$3(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:A,w:t,b:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return i$3(e);if("string"==typeof e){s$3.lastIndex=0;const A=s$3.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?3.59:A<3?1:.01):+e));return i$3({h:e,w:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=e=>{e.prototype.hwba=function(){return o$3(this.rgba())},e.prototype.stringHWB=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hwba()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`hwba(${a$3(t)}, ${i}%, ${n}%, ${a})`:`hwb(${a$3(t)}, ${i}%, ${n}%)`},e.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(e,A)=>{for(var t in A)t$2.o(A,t)&&!t$2.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$2={};function r$2(e,A,t){return Math.max(e,Math.min(A,t))}function s$2(e){const A=e%360;return A<0?A+360:A}function e$2(e){const{h:A,s:t,v:i,a:n}=e,a=i/100,r=a*(t/100),s=r*(1-Math.abs(A/60%2-1)),o=a-r,l=A<60||300<=A&&A<360?r:120<=A&&A<240?0:s,c=240<=A&&A<360?0:60<=A&&A<180?r:s,d=A<120?0:180<=A&&A<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:e,s:A,v:t,a:i}){return[e$2({h:s$2(e),s:r$2(0,A,100),v:r$2(0,t,100),a:(n=i,void 0!==n?r$2(0,n,1):1)}),"hsv"];var n}function i$2(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:A,s:t,v:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return o$2(e);if("string"==typeof e){a$2.lastIndex=0;const A=a$2.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?3.59:A<3?1:.01):+e));return o$2({h:e,s:t,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=e=>{e.prototype.hsva=function(){return function(e){var A;const{Cmax:t,H:i,delta:n}=function(e){const[A,t,i]=Object.values(e).map((e=>e/255)),n=Math.max(A,t,i),a=Math.min(A,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===A?(t-i)/r%6:n===t?(i-A)/r+2:(A-t)/r+4,delta:r}}(e),a=0===n?0:n/t;return{h:s$2(60*i),s:100*a,v:100*t,a:null!==(A=e.a)&&void 0!==A?A:1}}(this.rgba())},e.prototype.stringHSV=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hsva()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`hsva(${s$2(t)}, ${i}%, ${n}%, ${a})`:`hsv(${s$2(t)}, ${i}%, ${n}%)`},e.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(e,A)=>{for(var t in A)t$1.o(A,t)&&!t$1.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},r$1={};function n$1(e,A,t){return Math.max(e,Math.min(A,t))}function o$1(e){let{r:A,y:t,b:i}=e;const n=Math.min(A,t,i);[A,t,i]=[A,t,i].map((e=>e-n));const a=Math.max(A,t,i);let r=Math.min(t,i);t-=r,i-=r,i&&r&&(i*=2,r*=2),A+=t,r+=t;const s=Math.max(A,r,i);if(s){const e=a/s;[A,r,i]=[A,r,i].map((A=>A*e))}return[A,r,i]=[A,r,i].map((e=>e+n)),{r:A,g:r,b:i,a:e.a}}t$1.d(r$1,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:e,y:A,b:t,a:i}){return[o$1({r:n$1(0,e,255),y:n$1(0,A,255),b:n$1(0,t,255),a:(n=i,void 0!==n?n$1(0,n,1):1)}),"ryb"];var n}function s$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:A,y:t,b:i}=e;return void 0!==A&&void 0!==t&&void 0!==i}(e))return e$1(e);if("string"==typeof e){a$1.lastIndex=0;const A=a$1.exec(e);if(A){const[e,t,i,n]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?2.55:.01):+e));return e$1({r:e,y:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=e=>{e.prototype.ryba=function(){return function(e){let{r:A,g:t,b:i}=e;const n=Math.min(A,t,i);[A,t,i]=[A,t,i].map((e=>e-n));const a=Math.max(A,t,i);let r=Math.min(A,t);A-=r,t-=r,i&&t&&(i/=2,t/=2),r+=t,i+=t;const s=Math.max(A,r,i);if(s){const e=a/s;[A,r,i]=[A,r,i].map((A=>A*e))}return[A,r,i]=[A,r,i].map((e=>e+n)),{r:A,y:r,b:i,a:e.a}}(this.rgba())},e.prototype.stringRYB=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.ryba()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(ryba ${t}, ${i}, ${n}, ${a})`:`color(ryb ${t}, ${i}, ${n})`},e.Parsers.push(s$1)};var c$1=r$1.Z,t={d:(e,A)=>{for(var i in A)t.o(A,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:A[i]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n={};function e(e,A,t){return Math.max(e,Math.min(A,t))}function r(e){const{c:A,m:t,y:i,k:n,a:a}=e,[r,s,o]=[A,t,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:A,m:t,y:i,k:n,a:a}){return[r({c:e(0,A,100),m:e(0,t,100),y:e(0,i,100),k:e(0,n,100),a:(s=a,void 0!==s?e(0,s,1):1)}),"cmyk"];var s}function a(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{c:A,m:t,y:i,k:n}=e;return void 0!==A&&void 0!==t&&void 0!==i&&void 0!==n}(e))return o(e);if("string"==typeof e){c.lastIndex=0;const A=c.exec(e);if(A){const[e,t,i,n,a]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<4?1:.01):+e));return o({c:e,m:t,y:i,k:n,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=e=>{e.prototype.cmyka=function(){return function(e){const{r:A,g:t,b:i,a:n}=e,a=1-Math.max(A,t,i)/255,[r,s,o]=1===a?[0,0,0]:[A,t,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}(this.rgba())},e.prototype.stringCMYK=function({alpha:e=!0,precision:A=[0,0,0,0,1]}={}){const[t,i,n,a,r]=Object.values(this.cmyka()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`device-cmyk(${t}, ${i}, ${n}, ${a}, ${r})`:`device-cmyk(${t}, ${i}, ${n}, ${a})`},e.Parsers.push(a)};var s=n.Z;class ExcalidrawScene{constructor(e=[]){this.type="excalidraw",this.version=2,this.source="https://excalidraw.com",this.elements=[],this.elements=e}toExJSON(){return Object.assign(Object.assign({},this),{elements:this.elements.map((e=>Object.assign({},e)))})}}var ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array;function create$1(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var A=new ARRAY_TYPE(16);return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A[4]=e[4],A[5]=e[5],A[6]=e[6],A[7]=e[7],A[8]=e[8],A[9]=e[9],A[10]=e[10],A[11]=e[11],A[12]=e[12],A[13]=e[13],A[14]=e[14],A[15]=e[15],A}function fromValues$1(e,A,t,i,n,a,r,s,o,l,c,d,h,u,g,p){var w=new ARRAY_TYPE(16);return w[0]=e,w[1]=A,w[2]=t,w[3]=i,w[4]=n,w[5]=a,w[6]=r,w[7]=s,w[8]=o,w[9]=l,w[10]=c,w[11]=d,w[12]=h,w[13]=u,w[14]=g,w[15]=p,w}function multiply(e,A,t){var i=A[0],n=A[1],a=A[2],r=A[3],s=A[4],o=A[5],l=A[6],c=A[7],d=A[8],h=A[9],u=A[10],g=A[11],p=A[12],w=A[13],m=A[14],f=A[15],B=t[0],E=t[1],b=t[2],C=t[3];return e[0]=B*i+E*s+b*d+C*p,e[1]=B*n+E*o+b*h+C*w,e[2]=B*a+E*l+b*u+C*m,e[3]=B*r+E*c+b*g+C*f,B=t[4],E=t[5],b=t[6],C=t[7],e[4]=B*i+E*s+b*d+C*p,e[5]=B*n+E*o+b*h+C*w,e[6]=B*a+E*l+b*u+C*m,e[7]=B*r+E*c+b*g+C*f,B=t[8],E=t[9],b=t[10],C=t[11],e[8]=B*i+E*s+b*d+C*p,e[9]=B*n+E*o+b*h+C*w,e[10]=B*a+E*l+b*u+C*m,e[11]=B*r+E*c+b*g+C*f,B=t[12],E=t[13],b=t[14],C=t[15],e[12]=B*i+E*s+b*d+C*p,e[13]=B*n+E*o+b*h+C*w,e[14]=B*a+E*l+b*u+C*m,e[15]=B*r+E*c+b*g+C*f,e}function create(){var e=new ARRAY_TYPE(3);return ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function fromValues(e,A,t){var i=new ARRAY_TYPE(3);return i[0]=e,i[1]=A,i[2]=t,i}function transformMat4(e,A,t){var i=A[0],n=A[1],a=A[2],r=t[3]*i+t[7]*n+t[11]*a+t[15];return r=r||1,e[0]=(t[0]*i+t[4]*n+t[8]*a+t[12])/r,e[1]=(t[1]*i+t[5]*n+t[9]*a+t[13])/r,e[2]=(t[2]*i+t[6]*n+t[10]*a+t[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,A=arguments.length;A--;)e+=arguments[A]*arguments[A];return Math.sqrt(e)}),create();const random=new Random(Date.now()),randomInteger=()=>Math.floor(random.next()*2**31),randomId=()=>nanoid$1();function dimensionsFromPoints(e){const A=e.map((([e])=>e)),t=e.map((([,e])=>e)),i=Math.min(...A),n=Math.min(...t);return[Math.max(...A)-i,Math.max(...t)-n]}function getWindingOrder(e){return e.reduce(((e,[A,t],i,n)=>{const a=n[i+1];return((a?a[0]:0)-A)*((a?a[1]:0)+t)+e}),0)>0?"clockwise":"counterclockwise"}var chroma$1={exports:{}}; +/** + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2019, Gregor Aisch + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. 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. + * + * 3. The name Gregor Aisch may not 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 GREGOR AISCH 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. + * + * ------------------------------------------------------- + * + * chroma.js includes colors from colorbrewer2.org, which are released under + * the following license: + * + * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, + * and The Pennsylvania State University. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + * ------------------------------------------------------ + * + * Named colors are taken from X11 Color Names. + * http://www.w3.org/TR/css3-color/#svg-color + * + * @preserve + */chroma$1.exports=function(){for(var e=function(e,A,t){return void 0===A&&(A=0),void 0===t&&(t=1),et?t:e},A=e,t={},i=0,n=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];i255)&&(e._clipped=!0),e[t]=A(e[t],0,255)):3===t&&(e[t]=A(e[t],0,1));return e},limit:e,type:r,unpack:function(e,A){return void 0===A&&(A=null),e.length>=3?Array.prototype.slice.call(e):"object"==s(e[0])&&A?A.split("").filter((function(A){return void 0!==e[0][A]})).map((function(A){return e[0][A]})):e[0]},last:function(e){if(e.length<2)return null;var A=e.length-1;return"string"==o(e[A])?e[A].toLowerCase():null},PI:l,TWOPI:2*l,PITHIRD:l/3,DEG2RAD:l/180,RAD2DEG:180/l},d={format:{},autodetect:[]},h=c.last,u=c.clip_rgb,g=c.type,p=d,w=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=this;if("object"===g(e[0])&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];var i=h(e),n=!1;if(!i){n=!0,p.sorted||(p.autodetect=p.autodetect.sort((function(e,A){return A.p-e.p})),p.sorted=!0);for(var a=0,r=p.autodetect;a4?e[4]:1;return 1===a?[0,0,0,r]:[t>=1?0:255*(1-t)*(1-a),i>=1?0:255*(1-i)*(1-a),n>=1?0:255*(1-n)*(1-a),r]},F=B,x=m,S=d,T=c.unpack,Q=c.type,I=C;x.prototype.cmyk=function(){return I(this._rgb)},F.cmyk=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(x,[null].concat(e,["cmyk"])))},S.format.cmyk=y,S.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=T(e,"cmyk"),"array"===Q(e)&&4===e.length)return"cmyk"}});var U=c.unpack,k=c.last,M=function(e){return Math.round(100*e)/100},L=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=U(e,"hsla"),i=k(e)||"lsa";return t[0]=M(t[0]||0),t[1]=M(100*t[1])+"%",t[2]=M(100*t[2])+"%","hsla"===i||t.length>3&&t[3]<1?(t[3]=t.length>3?t[3]:1,i="hsla"):t.length=3,i+"("+t.join(",")+")"},O=c.unpack,N=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=O(e,"rgba"))[0],i=e[1],n=e[2];t/=255,i/=255,n/=255;var a,r,s=Math.min(t,i,n),o=Math.max(t,i,n),l=(o+s)/2;return o===s?(a=0,r=Number.NaN):a=l<.5?(o-s)/(o+s):(o-s)/(2-o-s),t==o?r=(i-n)/(o-s):i==o?r=2+(n-t)/(o-s):n==o&&(r=4+(t-i)/(o-s)),(r*=60)<0&&(r+=360),e.length>3&&void 0!==e[3]?[r,a,l,e[3]]:[r,a,l]},D=c.unpack,H=c.last,R=L,P=N,V=Math.round,K=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=D(e,"rgba"),i=H(e)||"rgb";return"hsl"==i.substr(0,3)?R(P(t),i):(t[0]=V(t[0]),t[1]=V(t[1]),t[2]=V(t[2]),("rgba"===i||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,i="rgba"),i+"("+t.slice(0,"rgb"===i?3:4).join(",")+")")},G=c.unpack,W=Math.round,z=function(){for(var e,A=[],t=arguments.length;t--;)A[t]=arguments[t];var i,n,a,r=(A=G(A,"hsl"))[0],s=A[1],o=A[2];if(0===s)i=n=a=255*o;else{var l=[0,0,0],c=[0,0,0],d=o<.5?o*(1+s):o+s-o*s,h=2*o-d,u=r/360;l[0]=u+1/3,l[1]=u,l[2]=u-1/3;for(var g=0;g<3;g++)l[g]<0&&(l[g]+=1),l[g]>1&&(l[g]-=1),6*l[g]<1?c[g]=h+6*(d-h)*l[g]:2*l[g]<1?c[g]=d:3*l[g]<2?c[g]=h+(d-h)*(2/3-l[g])*6:c[g]=h;i=(e=[W(255*c[0]),W(255*c[1]),W(255*c[2])])[0],n=e[1],a=e[2]}return A.length>3?[i,n,a,A[3]]:[i,n,a,1]},X=z,Y=d,j=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,J=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,Z=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,q=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,_=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,$=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ee=Math.round,Ae=function(e){var A;if(e=e.toLowerCase().trim(),Y.format.named)try{return Y.format.named(e)}catch(e){}if(A=e.match(j)){for(var t=A.slice(1,4),i=0;i<3;i++)t[i]=+t[i];return t[3]=1,t}if(A=e.match(J)){for(var n=A.slice(1,5),a=0;a<4;a++)n[a]=+n[a];return n}if(A=e.match(Z)){for(var r=A.slice(1,4),s=0;s<3;s++)r[s]=ee(2.55*r[s]);return r[3]=1,r}if(A=e.match(q)){for(var o=A.slice(1,5),l=0;l<3;l++)o[l]=ee(2.55*o[l]);return o[3]=+o[3],o}if(A=e.match(_)){var c=A.slice(1,4);c[1]*=.01,c[2]*=.01;var d=X(c);return d[3]=1,d}if(A=e.match($)){var h=A.slice(1,4);h[1]*=.01,h[2]*=.01;var u=X(h);return u[3]=+A[4],u}};Ae.test=function(e){return j.test(e)||J.test(e)||Z.test(e)||q.test(e)||_.test(e)||$.test(e)};var te=B,ie=m,ne=d,ae=c.type,re=K,se=Ae;ie.prototype.css=function(e){return re(this._rgb,e)},te.css=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(ie,[null].concat(e,["css"])))},ne.format.css=se,ne.autodetect.push({p:5,test:function(e){for(var A=[],t=arguments.length-1;t-- >0;)A[t]=arguments[t+1];if(!A.length&&"string"===ae(e)&&se.test(e))return"css"}});var oe=m,le=B,ce=c.unpack;d.format.gl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=ce(e,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},le.gl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(oe,[null].concat(e,["gl"])))},oe.prototype.gl=function(){var e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};var de=c.unpack,he=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,i=de(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Math.min(n,a,r),o=Math.max(n,a,r),l=o-s,c=100*l/255,d=s/(255-l)*100;return 0===l?t=Number.NaN:(n===o&&(t=(a-r)/l),a===o&&(t=2+(r-n)/l),r===o&&(t=4+(n-a)/l),(t*=60)<0&&(t+=360)),[t,c,d]},ue=c.unpack,ge=Math.floor,pe=function(){for(var e,A,t,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ue(r,"hcg"))[0],h=r[1],u=r[2];u*=255;var g=255*h;if(0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=ge(d/=60),w=d-p,m=u*(1-h),f=m+g*(1-w),B=m+g*w,E=m+g;switch(p){case 0:o=(e=[E,B,m])[0],l=e[1],c=e[2];break;case 1:o=(A=[f,E,m])[0],l=A[1],c=A[2];break;case 2:o=(t=[m,E,B])[0],l=t[1],c=t[2];break;case 3:o=(i=[m,f,E])[0],l=i[1],c=i[2];break;case 4:o=(n=[B,m,E])[0],l=n[1],c=n[2];break;case 5:o=(a=[E,m,f])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},we=c.unpack,me=c.type,fe=B,Be=m,Ee=d,be=he;Be.prototype.hcg=function(){return be(this._rgb)},fe.hcg=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Be,[null].concat(e,["hcg"])))},Ee.format.hcg=pe,Ee.autodetect.push({p:1,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=we(e,"hcg"),"array"===me(e)&&3===e.length)return"hcg"}});var Ce=c.unpack,ve=c.last,ye=Math.round,Fe=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=Ce(e,"rgba"),i=t[0],n=t[1],a=t[2],r=t[3],s=ve(e)||"auto";void 0===r&&(r=1),"auto"===s&&(s=r<1?"rgba":"rgb");var o="000000"+((i=ye(i))<<16|(n=ye(n))<<8|(a=ye(a))).toString(16);o=o.substr(o.length-6);var l="0"+ye(255*r).toString(16);switch(l=l.substr(l.length-2),s.toLowerCase()){case"rgba":return"#"+o+l;case"argb":return"#"+l+o;default:return"#"+o}},xe=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Se=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Te=function(e){if(e.match(xe)){4!==e.length&&7!==e.length||(e=e.substr(1)),3===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var A=parseInt(e,16);return[A>>16,A>>8&255,255&A,1]}if(e.match(Se)){5!==e.length&&9!==e.length||(e=e.substr(1)),4===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);var t=parseInt(e,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex color: "+e)},Qe=B,Ie=m,Ue=c.type,ke=d,Me=Fe;Ie.prototype.hex=function(e){return Me(this._rgb,e)},Qe.hex=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Ie,[null].concat(e,["hex"])))},ke.format.hex=Te,ke.autodetect.push({p:4,test:function(e){for(var A=[],t=arguments.length-1;t-- >0;)A[t]=arguments[t+1];if(!A.length&&"string"===Ue(e)&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var Le=c.unpack,Oe=c.TWOPI,Ne=Math.min,De=Math.sqrt,He=Math.acos,Re=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,i=Le(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Ne(n/=255,a/=255,r/=255),o=(n+a+r)/3,l=o>0?1-s/o:0;return 0===l?t=NaN:(t=(n-a+(n-r))/2,t/=De((n-a)*(n-a)+(n-r)*(a-r)),t=He(t),r>a&&(t=Oe-t),t/=Oe),[360*t,l,o]},Pe=c.unpack,Ve=c.limit,Ke=c.TWOPI,Ge=c.PITHIRD,We=Math.cos,ze=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,i,n,a=(e=Pe(e,"hsi"))[0],r=e[1],s=e[2];return isNaN(a)&&(a=0),isNaN(r)&&(r=0),a>360&&(a-=360),a<0&&(a+=360),(a/=360)<1/3?i=1-((n=(1-r)/3)+(t=(1+r*We(Ke*a)/We(Ge-Ke*a))/3)):a<2/3?n=1-((t=(1-r)/3)+(i=(1+r*We(Ke*(a-=1/3))/We(Ge-Ke*a))/3)):t=1-((i=(1-r)/3)+(n=(1+r*We(Ke*(a-=2/3))/We(Ge-Ke*a))/3)),[255*(t=Ve(s*t*3)),255*(i=Ve(s*i*3)),255*(n=Ve(s*n*3)),e.length>3?e[3]:1]},Xe=c.unpack,Ye=c.type,je=B,Je=m,Ze=d,qe=Re;Je.prototype.hsi=function(){return qe(this._rgb)},je.hsi=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Je,[null].concat(e,["hsi"])))},Ze.format.hsi=ze,Ze.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=Xe(e,"hsi"),"array"===Ye(e)&&3===e.length)return"hsi"}});var _e=c.unpack,$e=c.type,eA=B,AA=m,tA=d,iA=N;AA.prototype.hsl=function(){return iA(this._rgb)},eA.hsl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(AA,[null].concat(e,["hsl"])))},tA.format.hsl=z,tA.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=_e(e,"hsl"),"array"===$e(e)&&3===e.length)return"hsl"}});var nA=c.unpack,aA=Math.min,rA=Math.max,sA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,i,n,a=(e=nA(e,"rgb"))[0],r=e[1],s=e[2],o=aA(a,r,s),l=rA(a,r,s),c=l-o;return n=l/255,0===l?(t=Number.NaN,i=0):(i=c/l,a===l&&(t=(r-s)/c),r===l&&(t=2+(s-a)/c),s===l&&(t=4+(a-r)/c),(t*=60)<0&&(t+=360)),[t,i,n]},oA=c.unpack,lA=Math.floor,cA=function(){for(var e,A,t,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=oA(r,"hsv"))[0],h=r[1],u=r[2];if(u*=255,0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var g=lA(d/=60),p=d-g,w=u*(1-h),m=u*(1-h*p),f=u*(1-h*(1-p));switch(g){case 0:o=(e=[u,f,w])[0],l=e[1],c=e[2];break;case 1:o=(A=[m,u,w])[0],l=A[1],c=A[2];break;case 2:o=(t=[w,u,f])[0],l=t[1],c=t[2];break;case 3:o=(i=[w,m,u])[0],l=i[1],c=i[2];break;case 4:o=(n=[f,w,u])[0],l=n[1],c=n[2];break;case 5:o=(a=[u,w,m])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},dA=c.unpack,hA=c.type,uA=B,gA=m,pA=d,wA=sA;gA.prototype.hsv=function(){return wA(this._rgb)},uA.hsv=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(gA,[null].concat(e,["hsv"])))},pA.format.hsv=cA,pA.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=dA(e,"hsv"),"array"===hA(e)&&3===e.length)return"hsv"}});var mA={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},fA=mA,BA=c.unpack,EA=Math.pow,bA=function(e){return(e/=255)<=.04045?e/12.92:EA((e+.055)/1.055,2.4)},CA=function(e){return e>fA.t3?EA(e,1/3):e/fA.t2+fA.t0},vA=function(e,A,t){return e=bA(e),A=bA(A),t=bA(t),[CA((.4124564*e+.3575761*A+.1804375*t)/fA.Xn),CA((.2126729*e+.7151522*A+.072175*t)/fA.Yn),CA((.0193339*e+.119192*A+.9503041*t)/fA.Zn)]},yA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=BA(e,"rgb"),i=t[0],n=t[1],a=t[2],r=vA(i,n,a),s=r[0],o=r[1],l=116*o-16;return[l<0?0:l,500*(s-o),200*(o-r[2])]},FA=mA,xA=c.unpack,SA=Math.pow,TA=function(e){return 255*(e<=.00304?12.92*e:1.055*SA(e,1/2.4)-.055)},QA=function(e){return e>FA.t1?e*e*e:FA.t2*(e-FA.t0)},IA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,i,n,a=(e=xA(e,"lab"))[0],r=e[1],s=e[2];return i=(a+16)/116,t=isNaN(r)?i:i+r/500,n=isNaN(s)?i:i-s/200,i=FA.Yn*QA(i),t=FA.Xn*QA(t),n=FA.Zn*QA(n),[TA(3.2404542*t-1.5371385*i-.4985314*n),TA(-.969266*t+1.8760108*i+.041556*n),TA(.0556434*t-.2040259*i+1.0572252*n),e.length>3?e[3]:1]},UA=c.unpack,kA=c.type,MA=B,LA=m,OA=d,NA=yA;LA.prototype.lab=function(){return NA(this._rgb)},MA.lab=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(LA,[null].concat(e,["lab"])))},OA.format.lab=IA,OA.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=UA(e,"lab"),"array"===kA(e)&&3===e.length)return"lab"}});var DA=c.unpack,HA=c.RAD2DEG,RA=Math.sqrt,PA=Math.atan2,VA=Math.round,KA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=DA(e,"lab"),i=t[0],n=t[1],a=t[2],r=RA(n*n+a*a),s=(PA(a,n)*HA+360)%360;return 0===VA(1e4*r)&&(s=Number.NaN),[i,r,s]},GA=c.unpack,WA=yA,zA=KA,XA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=GA(e,"rgb"),i=t[0],n=t[1],a=t[2],r=WA(i,n,a),s=r[0],o=r[1],l=r[2];return zA(s,o,l)},YA=c.unpack,jA=c.DEG2RAD,JA=Math.sin,ZA=Math.cos,qA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=YA(e,"lch"),i=t[0],n=t[1],a=t[2];return isNaN(a)&&(a=0),[i,ZA(a*=jA)*n,JA(a)*n]},_A=c.unpack,$A=qA,et=IA,At=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=_A(e,"lch"))[0],i=e[1],n=e[2],a=$A(t,i,n),r=a[0],s=a[1],o=a[2],l=et(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},tt=c.unpack,it=At,nt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=tt(e,"hcl").reverse();return it.apply(void 0,t)},at=c.unpack,rt=c.type,st=B,ot=m,lt=d,ct=XA;ot.prototype.lch=function(){return ct(this._rgb)},ot.prototype.hcl=function(){return ct(this._rgb).reverse()},st.lch=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(ot,[null].concat(e,["lch"])))},st.hcl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(ot,[null].concat(e,["hcl"])))},lt.format.lch=At,lt.format.hcl=nt,["lch","hcl"].forEach((function(e){return lt.autodetect.push({p:2,test:function(){for(var A=[],t=arguments.length;t--;)A[t]=arguments[t];if(A=at(A,e),"array"===rt(A)&&3===A.length)return e}})}));var dt={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",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",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",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",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",maroon2:"#7f0000",maroon3:"#b03060",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",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",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"},ht=d,ut=c.type,gt=dt,pt=Te,wt=Fe;m.prototype.name=function(){for(var e=wt(this._rgb,"rgb"),A=0,t=Object.keys(gt);A0;)A[t]=arguments[t+1];if(!A.length&&"string"===ut(e)&>[e.toLowerCase()])return"named"}});var mt=c.unpack,ft=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=mt(e,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]},Bt=c.type,Et=function(e){if("number"==Bt(e)&&e>=0&&e<=16777215)return[e>>16,e>>8&255,255&e,1];throw new Error("unknown num color: "+e)},bt=B,Ct=m,vt=d,yt=c.type,Ft=ft;Ct.prototype.num=function(){return Ft(this._rgb)},bt.num=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Ct,[null].concat(e,["num"])))},vt.format.num=Et,vt.autodetect.push({p:5,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(1===e.length&&"number"===yt(e[0])&&e[0]>=0&&e[0]<=16777215)return"num"}});var xt=B,St=m,Tt=d,Qt=c.unpack,It=c.type,Ut=Math.round;St.prototype.rgb=function(e){return void 0===e&&(e=!0),!1===e?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Ut)},St.prototype.rgba=function(e){return void 0===e&&(e=!0),this._rgb.slice(0,4).map((function(A,t){return t<3?!1===e?A:Ut(A):A}))},xt.rgb=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(St,[null].concat(e,["rgb"])))},Tt.format.rgb=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=Qt(e,"rgba");return void 0===t[3]&&(t[3]=1),t},Tt.autodetect.push({p:3,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=Qt(e,"rgba"),"array"===It(e)&&(3===e.length||4===e.length&&"number"==It(e[3])&&e[3]>=0&&e[3]<=1))return"rgb"}});var kt=Math.log,Mt=function(e){var A,t,i,n=e/100;return n<66?(A=255,t=n<6?0:-155.25485562709179-.44596950469579133*(t=n-2)+104.49216199393888*kt(t),i=n<20?0:.8274096064007395*(i=n-10)-254.76935184120902+115.67994401066147*kt(i)):(A=351.97690566805693+.114206453784165*(A=n-55)-40.25366309332127*kt(A),t=325.4494125711974+.07943456536662342*(t=n-50)-28.0852963507957*kt(t),i=255),[A,t,i,1]},Lt=Mt,Ot=c.unpack,Nt=Math.round,Dt=B,Ht=m,Rt=d,Pt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];for(var t,i=Ot(e,"rgb"),n=i[0],a=i[2],r=1e3,s=4e4,o=.4;s-r>o;){var l=Lt(t=.5*(s+r));l[2]/l[0]>=a/n?s=t:r=t}return Nt(t)};Ht.prototype.temp=Ht.prototype.kelvin=Ht.prototype.temperature=function(){return Pt(this._rgb)},Dt.temp=Dt.kelvin=Dt.temperature=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Ht,[null].concat(e,["temp"])))},Rt.format.temp=Rt.format.kelvin=Rt.format.temperature=Mt;var Vt=c.unpack,Kt=Math.cbrt,Gt=Math.pow,Wt=Math.sign,zt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=Vt(e,"rgb"),i=t[0],n=t[1],a=t[2],r=[Xt(i/255),Xt(n/255),Xt(a/255)],s=r[0],o=r[1],l=r[2],c=Kt(.4122214708*s+.5363325363*o+.0514459929*l),d=Kt(.2119034982*s+.6806995451*o+.1073969566*l),h=Kt(.0883024619*s+.2817188376*o+.6299787005*l);return[.2104542553*c+.793617785*d-.0040720468*h,1.9779984951*c-2.428592205*d+.4505937099*h,.0259040371*c+.7827717662*d-.808675766*h]};function Xt(e){var A=Math.abs(e);return A<.04045?e/12.92:(Wt(e)||1)*Gt((A+.055)/1.055,2.4)}var Yt=c.unpack,jt=Math.pow,Jt=Math.sign,Zt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=Yt(e,"lab"))[0],i=e[1],n=e[2],a=jt(t+.3963377774*i+.2158037573*n,3),r=jt(t-.1055613458*i-.0638541728*n,3),s=jt(t-.0894841775*i-1.291485548*n,3);return[255*qt(4.0767416621*a-3.3077115913*r+.2309699292*s),255*qt(-1.2684380046*a+2.6097574011*r-.3413193965*s),255*qt(-.0041960863*a-.7034186147*r+1.707614701*s),e.length>3?e[3]:1]};function qt(e){var A=Math.abs(e);return A>.0031308?(Jt(e)||1)*(1.055*jt(A,1/2.4)-.055):12.92*e}var _t=c.unpack,$t=c.type,ei=B,Ai=m,ti=d,ii=zt;Ai.prototype.oklab=function(){return ii(this._rgb)},ei.oklab=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Ai,[null].concat(e,["oklab"])))},ti.format.oklab=Zt,ti.autodetect.push({p:3,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=_t(e,"oklab"),"array"===$t(e)&&3===e.length)return"oklab"}});var ni=c.unpack,ai=zt,ri=KA,si=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=ni(e,"rgb"),i=t[0],n=t[1],a=t[2],r=ai(i,n,a),s=r[0],o=r[1],l=r[2];return ri(s,o,l)},oi=c.unpack,li=qA,ci=Zt,di=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=oi(e,"lch"))[0],i=e[1],n=e[2],a=li(t,i,n),r=a[0],s=a[1],o=a[2],l=ci(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},hi=c.unpack,ui=c.type,gi=B,pi=m,wi=d,mi=si;pi.prototype.oklch=function(){return mi(this._rgb)},gi.oklch=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(pi,[null].concat(e,["oklch"])))},wi.format.oklch=di,wi.autodetect.push({p:3,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=hi(e,"oklch"),"array"===ui(e)&&3===e.length)return"oklch"}});var fi=m,Bi=c.type;fi.prototype.alpha=function(e,A){return void 0===A&&(A=!1),void 0!==e&&"number"===Bi(e)?A?(this._rgb[3]=e,this):new fi([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},m.prototype.clipped=function(){return this._rgb._clipped||!1};var Ei=m,bi=mA;Ei.prototype.darken=function(e){void 0===e&&(e=1);var A=this.lab();return A[0]-=bi.Kn*e,new Ei(A,"lab").alpha(this.alpha(),!0)},Ei.prototype.brighten=function(e){return void 0===e&&(e=1),this.darken(-e)},Ei.prototype.darker=Ei.prototype.darken,Ei.prototype.brighter=Ei.prototype.brighten,m.prototype.get=function(e){var A=e.split("."),t=A[0],i=A[1],n=this[t]();if(i){var a=t.indexOf(i)-("ok"===t.substr(0,2)?2:0);if(a>-1)return n[a];throw new Error("unknown channel "+i+" in mode "+t)}return n};var Ci=m,vi=c.type,yi=Math.pow;Ci.prototype.luminance=function(e){if(void 0!==e&&"number"===vi(e)){if(0===e)return new Ci([0,0,0,this._rgb[3]],"rgb");if(1===e)return new Ci([255,255,255,this._rgb[3]],"rgb");var A=this.luminance(),t=20,i=function(A,n){var a=A.interpolate(n,.5,"rgb"),r=a.luminance();return Math.abs(e-r)<1e-7||!t--?a:r>e?i(A,a):i(a,n)},n=(A>e?i(new Ci([0,0,0]),this):i(this,new Ci([255,255,255]))).rgb();return new Ci(n.concat([this._rgb[3]]))}return Fi.apply(void 0,this._rgb.slice(0,3))};var Fi=function(e,A,t){return.2126*(e=xi(e))+.7152*(A=xi(A))+.0722*xi(t)},xi=function(e){return(e/=255)<=.03928?e/12.92:yi((e+.055)/1.055,2.4)},Si={},Ti=m,Qi=c.type,Ii=Si,Ui=function(e,A,t){void 0===t&&(t=.5);for(var i=[],n=arguments.length-3;n-- >0;)i[n]=arguments[n+3];var a=i[0]||"lrgb";if(Ii[a]||i.length||(a=Object.keys(Ii)[0]),!Ii[a])throw new Error("interpolation mode "+a+" is not defined");return"object"!==Qi(e)&&(e=new Ti(e)),"object"!==Qi(A)&&(A=new Ti(A)),Ii[a](e,A,t).alpha(e.alpha()+t*(A.alpha()-e.alpha()))},ki=m,Mi=Ui;ki.prototype.mix=ki.prototype.interpolate=function(e,A){void 0===A&&(A=.5);for(var t=[],i=arguments.length-2;i-- >0;)t[i]=arguments[i+2];return Mi.apply(void 0,[this,e,A].concat(t))};var Li=m;Li.prototype.premultiply=function(e){void 0===e&&(e=!1);var A=this._rgb,t=A[3];return e?(this._rgb=[A[0]*t,A[1]*t,A[2]*t,t],this):new Li([A[0]*t,A[1]*t,A[2]*t,t],"rgb")};var Oi=m,Ni=mA;Oi.prototype.saturate=function(e){void 0===e&&(e=1);var A=this.lch();return A[1]+=Ni.Kn*e,A[1]<0&&(A[1]=0),new Oi(A,"lch").alpha(this.alpha(),!0)},Oi.prototype.desaturate=function(e){return void 0===e&&(e=1),this.saturate(-e)};var Di=m,Hi=c.type;Di.prototype.set=function(e,A,t){void 0===t&&(t=!1);var i=e.split("."),n=i[0],a=i[1],r=this[n]();if(a){var s=n.indexOf(a)-("ok"===n.substr(0,2)?2:0);if(s>-1){if("string"==Hi(A))switch(A.charAt(0)){case"+":case"-":r[s]+=+A;break;case"*":r[s]*=+A.substr(1);break;case"/":r[s]/=+A.substr(1);break;default:r[s]=+A}else{if("number"!==Hi(A))throw new Error("unsupported value for Color.set");r[s]=A}var o=new Di(r,n);return t?(this._rgb=o._rgb,this):o}throw new Error("unknown channel "+a+" in mode "+n)}return r};var Ri=m;Si.rgb=function(e,A,t){var i=e._rgb,n=A._rgb;return new Ri(i[0]+t*(n[0]-i[0]),i[1]+t*(n[1]-i[1]),i[2]+t*(n[2]-i[2]),"rgb")};var Pi=m,Vi=Math.sqrt,Ki=Math.pow;Si.lrgb=function(e,A,t){var i=e._rgb,n=i[0],a=i[1],r=i[2],s=A._rgb,o=s[0],l=s[1],c=s[2];return new Pi(Vi(Ki(n,2)*(1-t)+Ki(o,2)*t),Vi(Ki(a,2)*(1-t)+Ki(l,2)*t),Vi(Ki(r,2)*(1-t)+Ki(c,2)*t),"rgb")};var Gi=m;Si.lab=function(e,A,t){var i=e.lab(),n=A.lab();return new Gi(i[0]+t*(n[0]-i[0]),i[1]+t*(n[1]-i[1]),i[2]+t*(n[2]-i[2]),"lab")};var Wi=m,zi=function(e,A,t,i){var n,a,r,s,o,l,c,d,h,u,g,p,w;return"hsl"===i?(r=e.hsl(),s=A.hsl()):"hsv"===i?(r=e.hsv(),s=A.hsv()):"hcg"===i?(r=e.hcg(),s=A.hcg()):"hsi"===i?(r=e.hsi(),s=A.hsi()):"lch"===i||"hcl"===i?(i="hcl",r=e.hcl(),s=A.hcl()):"oklch"===i&&(r=e.oklch().reverse(),s=A.oklch().reverse()),"h"!==i.substr(0,1)&&"oklch"!==i||(o=(n=r)[0],c=n[1],h=n[2],l=(a=s)[0],d=a[1],u=a[2]),isNaN(o)||isNaN(l)?isNaN(o)?isNaN(l)?p=Number.NaN:(p=l,1!=h&&0!=h||"hsv"==i||(g=d)):(p=o,1!=u&&0!=u||"hsv"==i||(g=c)):p=o+t*(l>o&&l-o>180?l-(o+360):l180?l+360-o:l-o),void 0===g&&(g=c+t*(d-c)),w=h+t*(u-h),new Wi("oklch"===i?[w,g,p]:[p,g,w],i)},Xi=zi,Yi=function(e,A,t){return Xi(e,A,t,"lch")};Si.lch=Yi,Si.hcl=Yi;var ji=m;Si.num=function(e,A,t){var i=e.num(),n=A.num();return new ji(i+t*(n-i),"num")};var Ji=zi;Si.hcg=function(e,A,t){return Ji(e,A,t,"hcg")};var Zi=zi;Si.hsi=function(e,A,t){return Zi(e,A,t,"hsi")};var qi=zi;Si.hsl=function(e,A,t){return qi(e,A,t,"hsl")};var _i=zi;Si.hsv=function(e,A,t){return _i(e,A,t,"hsv")};var $i=m;Si.oklab=function(e,A,t){var i=e.oklab(),n=A.oklab();return new $i(i[0]+t*(n[0]-i[0]),i[1]+t*(n[1]-i[1]),i[2]+t*(n[2]-i[2]),"oklab")};var en=zi;Si.oklch=function(e,A,t){return en(e,A,t,"oklch")};var An=m,tn=c.clip_rgb,nn=Math.pow,an=Math.sqrt,rn=Math.PI,sn=Math.cos,on=Math.sin,ln=Math.atan2,cn=function(e,A){for(var t=e.length,i=[0,0,0,0],n=0;n.9999999&&(i[3]=1),new An(tn(i))},dn=B,hn=c.type,un=Math.pow,gn=function(e){var A="rgb",t=dn("#ccc"),i=0,n=[0,1],a=[],r=[0,0],s=!1,o=[],l=!1,c=0,d=1,h=!1,u={},g=!0,p=1,w=function(e){if((e=e||["#fff","#000"])&&"string"===hn(e)&&dn.brewer&&dn.brewer[e.toLowerCase()]&&(e=dn.brewer[e.toLowerCase()]),"array"===hn(e)){1===e.length&&(e=[e[0],e[0]]),e=e.slice(0);for(var A=0;A2?function(e){if(null!=s){for(var A=s.length-1,t=0;t=s[t];)t++;return t-1}return 0}(e)/(s.length-2):d!==c?(e-c)/(d-c):1,l=f(l),i||(l=m(l)),1!==p&&(l=un(l,p)),l=r[0]+l*(1-r[0]-r[1]),l=Math.min(1,Math.max(0,l));var h=Math.floor(1e4*l);if(g&&u[h])n=u[h];else{if("array"===hn(o))for(var w=0;w=B&&w===a.length-1){n=o[w];break}if(l>B&&l2){var l=e.map((function(A,t){return t/(e.length-1)})),h=e.map((function(e){return(e-c)/(d-c)}));h.every((function(e,A){return l[A]===e}))||(f=function(e){if(e<=0||e>=1)return e;for(var A=0;e>=h[A+1];)A++;var t=(e-h[A])/(h[A+1]-h[A]);return l[A]+t*(l[A+1]-l[A])})}}return n=[c,d],b},b.mode=function(e){return arguments.length?(A=e,E(),b):A},b.range=function(e,A){return w(e),b},b.out=function(e){return l=e,b},b.spread=function(e){return arguments.length?(i=e,b):i},b.correctLightness=function(e){return null==e&&(e=!0),h=e,E(),m=h?function(e){for(var A=B(0,!0).lab()[0],t=B(1,!0).lab()[0],i=A>t,n=B(e,!0).lab()[0],a=A+(t-A)*e,r=n-a,s=0,o=1,l=20;Math.abs(r)>.01&&l-- >0;)i&&(r*=-1),r<0?(s=e,e+=.5*(o-e)):(o=e,e+=.5*(s-e)),r=(n=B(e,!0).lab()[0])-a;return e}:function(e){return e},b},b.padding=function(e){return null!=e?("number"===hn(e)&&(e=[e,e]),r=e,b):r},b.colors=function(A,t){arguments.length<2&&(t="hex");var i=[];if(0===arguments.length)i=o.slice(0);else if(1===A)i=[b(.5)];else if(A>1){var a=n[0],r=n[1]-a;i=pn(0,A,!1).map((function(e){return b(a+e/(A-1)*r)}))}else{e=[];var l=[];if(s&&s.length>2)for(var c=1,d=s.length,h=1<=d;h?cd;h?c++:c--)l.push(.5*(s[c-1]+s[c]));else l=n;i=l.map((function(e){return b(e)}))}return dn[t]&&(i=i.map((function(e){return e[t]()}))),i},b.cache=function(e){return null!=e?(g=e,b):g},b.gamma=function(e){return null!=e?(p=e,b):p},b.nodata=function(e){return null!=e?(t=dn(e),b):t},b};function pn(e,A,t){for(var i=[],n=ea;n?r++:r--)i.push(r);return i}var wn=m,mn=gn,fn=B,Bn=function(e,A,t){if(!Bn[t])throw new Error("unknown blend mode "+t);return Bn[t](e,A)},En=function(e){return function(A,t){var i=fn(t).rgb(),n=fn(A).rgb();return fn.rgb(e(i,n))}},bn=function(e){return function(A,t){var i=[];return i[0]=e(A[0],t[0]),i[1]=e(A[1],t[1]),i[2]=e(A[2],t[2]),i}};Bn.normal=En(bn((function(e){return e}))),Bn.multiply=En(bn((function(e,A){return e*A/255}))),Bn.screen=En(bn((function(e,A){return 255*(1-(1-e/255)*(1-A/255))}))),Bn.overlay=En(bn((function(e,A){return A<128?2*e*A/255:255*(1-2*(1-e/255)*(1-A/255))}))),Bn.darken=En(bn((function(e,A){return e>A?A:e}))),Bn.lighten=En(bn((function(e,A){return e>A?e:A}))),Bn.dodge=En(bn((function(e,A){return 255===e||(e=A/255*255/(1-e/255))>255?255:e}))),Bn.burn=En(bn((function(e,A){return 255*(1-(1-A/255)/(e/255))})));for(var Cn=Bn,vn=c.type,yn=c.clip_rgb,Fn=c.TWOPI,xn=Math.pow,Sn=Math.sin,Tn=Math.cos,Qn=B,In=m,Un=Math.floor,kn=Math.random,Mn=r,Ln=Math.log,On=Math.pow,Nn=Math.floor,Dn=Math.abs,Hn=function(e,A){void 0===A&&(A=null);var t={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===Mn(e)&&(e=Object.values(e)),e.forEach((function(e){A&&"object"===Mn(e)&&(e=e[A]),null==e||isNaN(e)||(t.values.push(e),t.sum+=e,et.max&&(t.max=e),t.count+=1)})),t.domain=[t.min,t.max],t.limits=function(e,A){return Rn(t,e,A)},t},Rn=function(e,A,t){void 0===A&&(A="equal"),void 0===t&&(t=7),"array"==Mn(e)&&(e=Hn(e));var i=e.min,n=e.max,a=e.values.sort((function(e,A){return e-A}));if(1===t)return[i,n];var r=[];if("c"===A.substr(0,1)&&(r.push(i),r.push(n)),"e"===A.substr(0,1)){r.push(i);for(var s=1;s 0");var o=Math.LOG10E*Ln(i),l=Math.LOG10E*Ln(n);r.push(i);for(var c=1;c200&&(B=!1)}for(var O={},N=0;N=360;)g-=360;r[u]=g}else r[u]=r[u]/s[u];return h/=i,new An(r,A).alpha(h>.99999?1:h,!0)},la.bezier=function(e){var A=function(e){var A,t,i,n,a,r,s;if(e=e.map((function(e){return new wn(e)})),2===e.length)A=e.map((function(e){return e.lab()})),a=A[0],r=A[1],n=function(e){var A=[0,1,2].map((function(A){return a[A]+e*(r[A]-a[A])}));return new wn(A,"lab")};else if(3===e.length)t=e.map((function(e){return e.lab()})),a=t[0],r=t[1],s=t[2],n=function(e){var A=[0,1,2].map((function(A){return(1-e)*(1-e)*a[A]+2*(1-e)*e*r[A]+e*e*s[A]}));return new wn(A,"lab")};else if(4===e.length){var o;i=e.map((function(e){return e.lab()})),a=i[0],r=i[1],s=i[2],o=i[3],n=function(e){var A=[0,1,2].map((function(A){return(1-e)*(1-e)*(1-e)*a[A]+3*(1-e)*(1-e)*e*r[A]+3*(1-e)*e*e*s[A]+e*e*e*o[A]}));return new wn(A,"lab")}}else{if(!(e.length>=5))throw new RangeError("No point in running bezier with only one color.");var l,c,d;l=e.map((function(e){return e.lab()})),d=e.length-1,c=function(e){for(var A=[1,1],t=1;ti?(t+.05)/(i+.05):(i+.05)/(t+.05)},la.deltaE=function(e,A,t,i,n){void 0===t&&(t=1),void 0===i&&(i=1),void 0===n&&(n=1);var a=function(e){return 360*e/(2*_n)},r=function(e){return 2*_n*e/360};e=new Kn(e),A=new Kn(A);var s=Array.from(e.lab()),o=s[0],l=s[1],c=s[2],d=Array.from(A.lab()),h=d[0],u=d[1],g=d[2],p=(o+h)/2,w=(Gn(Wn(l,2)+Wn(c,2))+Gn(Wn(u,2)+Wn(g,2)))/2,m=.5*(1-Gn(Wn(w,7)/(Wn(w,7)+Wn(25,7)))),f=l*(1+m),B=u*(1+m),E=Gn(Wn(f,2)+Wn(c,2)),b=Gn(Wn(B,2)+Wn(g,2)),C=(E+b)/2,v=a(Yn(c,f)),y=a(Yn(g,B)),F=v>=0?v:v+360,x=y>=0?y:y+360,S=jn(F-x)>180?(F+x+360)/2:(F+x)/2,T=1-.17*Jn(r(S-30))+.24*Jn(r(2*S))+.32*Jn(r(3*S+6))-.2*Jn(r(4*S-63)),Q=x-F;Q=jn(Q)<=180?Q:x<=F?Q+360:Q-360,Q=2*Gn(E*b)*Zn(r(Q)/2);var I=h-o,U=b-E,k=1+.015*Wn(p-50,2)/Gn(20+Wn(p-50,2)),M=1+.045*C,L=1+.015*C*T,O=30*qn(-Wn((S-275)/25,2)),N=-2*Gn(Wn(C,7)/(Wn(C,7)+Wn(25,7)))*Zn(2*r(O)),D=Gn(Wn(I/(t*k),2)+Wn(U/(i*M),2)+Wn(Q/(n*L),2)+N*(U/(i*M))*(Q/(n*L)));return Xn(0,zn(100,D))},la.distance=function(e,A,t){void 0===t&&(t="lab"),e=new $n(e),A=new $n(A);var i=e.get(t),n=A.get(t),a=0;for(var r in i){var s=(i[r]||0)-(n[r]||0);a+=s*s}return Math.sqrt(a)},la.limits=Pn.limits,la.valid=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];try{return new(Function.prototype.bind.apply(ea,[null].concat(e))),!0}catch(e){return!1}},la.scales=ia,la.colors=dt,la.brewer=oa,la}();var chroma=chroma$1.exports;function hexWithAlpha(e,A){return chroma(e).alpha(A).css()}function has(e,A){return e.hasAttribute(A)}function get(e,A,t){return e.getAttribute(A)||t||""}function getNum(e,A,t){const i=Number(get(e,A));return NaN===i?t||0:i}const attrHandlers={stroke:({el:e,exVals:A})=>{const t=get(e,"stroke");A.strokeColor=has(e,"stroke-opacity")?hexWithAlpha(t,getNum(e,"stroke-opacity")):t},"stroke-opacity":({el:e,exVals:A})=>{A.strokeColor=hexWithAlpha(get(e,"stroke","#000000"),getNum(e,"stroke-opacity"))},"stroke-width":({el:e,exVals:A})=>{A.strokeWidth=getNum(e,"stroke-width")},fill:({el:e,exVals:A})=>{const t=get(e,"fill");A.backgroundColor="none"===t?"#00000000":t},"fill-opacity":({el:e,exVals:A})=>{A.backgroundColor=hexWithAlpha(get(e,"fill","#000000"),getNum(e,"fill-opacity"))},opacity:({el:e,exVals:A})=>{A.opacity=getNum(e,"opacity",100)}};function presAttrsToElementValues(e){return[...e.attributes].reduce(((A,t)=>{const i=t.name;return Object.keys(attrHandlers).includes(i)&&attrHandlers[i]({el:e,exVals:A}),A}),{})}function filterAttrsToElementValues(e){const A={};return has(e,"x")&&(A.x=getNum(e,"x")),has(e,"y")&&(A.y=getNum(e,"y")),has(e,"width")&&(A.width=getNum(e,"width")),has(e,"height")&&(A.height=getNum(e,"height")),A}function pointsAttrToPoints(e){let A=[];return has(e,"points")&&(A=get(e,"points").split(" ").map((e=>e.split(",").map(parseFloat)))),A}function getGroupAttrs(e){return e.reduce(((e,{element:A})=>{const t=presAttrsToElementValues(A);return Object.assign(Object.assign({},e),t)}),{})}class Group{constructor(e){this.id=randomId(),this.element=e}}function createExElement(){return{id:randomId(),x:0,y:0,strokeColor:"#000000",backgroundColor:"#000000",fillStyle:"solid",strokeWidth:1,strokeStyle:"solid",roundness:null,roughness:0,opacity:100,width:0,height:0,angle:0,seed:Math.floor(random.next()*2**31),version:0,versionNonce:0,isDeleted:!1,groupIds:[],boundElementIds:null}}function createExRect(){return Object.assign(Object.assign({},createExElement()),{type:"rectangle"})}function createExLine(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}function createExEllipse(){return Object.assign(Object.assign({},createExElement()),{type:"ellipse"})}function createExDraw(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}const transformFunctions={matrix:"matrix",matrix3d:"matrix3d",perspective:"perspective",rotate:"rotate",rotate3d:"rotate3d",rotateX:"rotateX",rotateY:"rotateY",rotateZ:"rotateZ",scale:"scale",scale3d:"scale3d",scaleX:"scaleX",scaleY:"scaleY",scaleZ:"scaleZ",skew:"skew",skewX:"skewX",skewY:"skewY",translate:"translate",translate3d:"translate3d",translateX:"translateX",translateY:"translateY",translateZ:"translateZ"},transformFunctionsArr=Object.keys(transformFunctions),defaultUnits={matrix:"",matrix3d:"",perspective:"perspective",rotate:"deg",rotate3d:"deg",rotateX:"deg",rotateY:"deg",rotateZ:"deg",scale:"",scale3d:"",scaleX:"",scaleY:"",scaleZ:"",skew:"skew",skewX:"deg",skewY:"deg",translate:"px",translate3d:"px",translateX:"px",translateY:"px",translateZ:"px"},svgTransformToCSSTransform=e=>{const A=e.match(/(\w+)\(([^)]*)\)/g);if(!A)return"";const t=A.map((e=>{const A=e.split("(")[0];if(!A)throw new Error("Unable to find transform name");if(!transformFunctionsArr.includes(A))throw new Error(`transform function name "${A}" is not valid`);const t=e.match(/([-+]?[0-9]*\.?[0-9]+)([a-z])*/g);if(!t)return{type:A,values:[]};let i=t.map((e=>{const[t,i]=e.matchAll(/([-+]?[0-9]*\.?[0-9]+)|([a-z])*/g);return{unit:i[0]||defaultUnits[A],value:t[0]}}));return i&&"rotate"===A&&(null==i?void 0:i.length)>1&&(i=[i[0]]),{type:A,values:i}}));return t.map((({type:e,values:A})=>`${e}(${A.map((({unit:e,value:A})=>`${A}${e}`)).join(", ")})`)).join(" ")};function getElementMatrix(e){if(e.hasAttribute("transform")){const A=new DOMMatrix(svgTransformToCSSTransform(e.getAttribute("transform")||""));return multiply(create$1(),create$1(),A.toFloat32Array())}return create$1()}function getTransformMatrix(e,A){return A.map((({element:e})=>getElementMatrix(e))).concat([getElementMatrix(e)]).reduce(((e,A)=>multiply(e,e,A)),create$1())}function transformPoints(e,A){return e.map((([e,t])=>{const[i,n]=transformMat4(create(),fromValues(e,t,1),A);return[i,n]}))}function distance(e,A){return Math.sqrt(distanceSq(e,A))}function distanceSq(e,A){return Math.pow(e[0]-A[0],2)+Math.pow(e[1]-A[1],2)}function distanceToSegmentSq(e,A,t){const i=distanceSq(A,t);if(0===i)return distanceSq(e,A);let n=((e[0]-A[0])*(t[0]-A[0])+(e[1]-A[1])*(t[1]-A[1]))/i;return n=Math.max(0,Math.min(1,n)),distanceSq(e,lerp(A,t,n))}function lerp(e,A,t){return[e[0]+(A[0]-e[0])*t,e[1]+(A[1]-e[1])*t]}function flatness(e,A){const t=e[A+0],i=e[A+1],n=e[A+2],a=e[A+3];let r=3*i[0]-2*t[0]-a[0];r*=r;let s=3*i[1]-2*t[1]-a[1];s*=s;let o=3*n[0]-2*a[0]-t[0];o*=o;let l=3*n[1]-2*a[1]-t[1];return l*=l,r1&&n.push(t):n.push(t),n.push(e[A+3])}else{const i=.5,a=e[A+0],r=e[A+1],s=e[A+2],o=e[A+3],l=lerp(a,r,i),c=lerp(r,s,i),d=lerp(s,o,i),h=lerp(l,c,i),u=lerp(c,d,i),g=lerp(h,u,i);getPointsOnBezierCurveWithSplitting([a,l,h,g],0,t,n),getPointsOnBezierCurveWithSplitting([g,u,d,o],0,t,n)}return n}function simplify(e,A){return simplifyPoints(e,0,e.length,A)}function simplifyPoints(e,A,t,i,n){const a=n||[],r=e[A],s=e[t-1];let o=0,l=1;for(let i=A+1;io&&(o=A,l=i)}return Math.sqrt(o)>i?(simplifyPoints(e,A,l+1,i,a),simplifyPoints(e,l,t,i,a)):(a.length||a.push(r),a.push(s)),a}function pointsOnBezierCurves(e,A=.15,t){const i=[],n=(e.length-1)/3;for(let t=0;t0?simplifyPoints(i,0,i.length,t):i}const COMMAND=0,NUMBER=1,EOD=2,PARAMS={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function tokenize(e){const A=new Array;for(;""!==e;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))A[A.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];A[A.length]={type:1,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return A[A.length]={type:2,text:""},A}function isType(e,A){return e.type===A}function parsePath(e){const A=[],t=tokenize(e);let i="BOD",n=0,a=t[n];for(;!isType(a,2);){let r=0;const s=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return parsePath("M0,0"+e);n++,r=PARAMS[a.text],i=a.text}else isType(a,1)?r=PARAMS[i]:(n++,r=PARAMS[a.text],i=a.text);if(!(n+ri%2?e+t:e+A));a.push({key:"C",data:e}),A=e[4],t=e[5];break}case"Q":a.push({key:"Q",data:[...s]}),A=s[2],t=s[3];break;case"q":{const e=s.map(((e,i)=>i%2?e+t:e+A));a.push({key:"Q",data:e}),A=e[2],t=e[3];break}case"A":a.push({key:"A",data:[...s]}),A=s[5],t=s[6];break;case"a":A+=s[5],t+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],A,t]});break;case"H":a.push({key:"H",data:[...s]}),A=s[0];break;case"h":A+=s[0],a.push({key:"H",data:[A]});break;case"V":a.push({key:"V",data:[...s]}),t=s[0];break;case"v":t+=s[0],a.push({key:"V",data:[t]});break;case"S":a.push({key:"S",data:[...s]}),A=s[2],t=s[3];break;case"s":{const e=s.map(((e,i)=>i%2?e+t:e+A));a.push({key:"S",data:e}),A=e[2],t=e[3];break}case"T":a.push({key:"T",data:[...s]}),A=s[0],t=s[1];break;case"t":A+=s[0],t+=s[1],a.push({key:"T",data:[A,t]});break;case"Z":case"z":a.push({key:"Z",data:[]}),A=i,t=n}return a}function normalize(e){const A=[];let t="",i=0,n=0,a=0,r=0,s=0,o=0;for(const{key:l,data:c}of e){switch(l){case"M":A.push({key:"M",data:[...c]}),[i,n]=c,[a,r]=c;break;case"C":A.push({key:"C",data:[...c]}),i=c[4],n=c[5],s=c[2],o=c[3];break;case"L":A.push({key:"L",data:[...c]}),[i,n]=c;break;case"H":i=c[0],A.push({key:"L",data:[i,n]});break;case"V":n=c[0],A.push({key:"L",data:[i,n]});break;case"S":{let e=0,a=0;"C"===t||"S"===t?(e=i+(i-s),a=n+(n-o)):(e=i,a=n),A.push({key:"C",data:[e,a,...c]}),s=c[0],o=c[1],i=c[2],n=c[3];break}case"T":{const[e,a]=c;let r=0,l=0;"Q"===t||"T"===t?(r=i+(i-s),l=n+(n-o)):(r=i,l=n);const d=i+2*(r-i)/3,h=n+2*(l-n)/3,u=e+2*(r-e)/3,g=a+2*(l-a)/3;A.push({key:"C",data:[d,h,u,g,e,a]}),s=r,o=l,i=e,n=a;break}case"Q":{const[e,t,a,r]=c,l=i+2*(e-i)/3,d=n+2*(t-n)/3,h=a+2*(e-a)/3,u=r+2*(t-r)/3;A.push({key:"C",data:[l,d,h,u,a,r]}),s=e,o=t,i=a,n=r;break}case"A":{const e=Math.abs(c[0]),t=Math.abs(c[1]),a=c[2],r=c[3],s=c[4],o=c[5],l=c[6];0===e||0===t?(A.push({key:"C",data:[i,n,o,l,o,l]}),i=o,n=l):i===o&&n===l||(arcToCubicCurves(i,n,o,l,e,t,a,r,s).forEach((function(e){A.push({key:"C",data:e})})),i=o,n=l);break}case"Z":A.push({key:"Z",data:[]}),i=a,n=r}t=l}return A}function degToRad(e){return Math.PI*e/180}function rotate(e,A,t){return[e*Math.cos(t)-A*Math.sin(t),e*Math.sin(t)+A*Math.cos(t)]}function arcToCubicCurves(e,A,t,i,n,a,r,s,o,l){const c=degToRad(r);let d=[],h=0,u=0,g=0,p=0;if(l)[h,u,g,p]=l;else{[e,A]=rotate(e,A,-c),[t,i]=rotate(t,i,-c);const r=(e-t)/2,l=(A-i)/2;let d=r*r/(n*n)+l*l/(a*a);d>1&&(d=Math.sqrt(d),n*=d,a*=d);const w=n*n,m=a*a,f=w*m-w*l*l-m*r*r,B=w*l*l+m*r*r,E=(s===o?-1:1)*Math.sqrt(Math.abs(f/B));g=E*n*l/a+(e+t)/2,p=E*-a*r/n+(A+i)/2,h=Math.asin(parseFloat(((A-p)/a).toFixed(9))),u=Math.asin(parseFloat(((i-p)/a).toFixed(9))),eu&&(h-=2*Math.PI),!o&&u>h&&(u-=2*Math.PI)}let w=u-h;if(Math.abs(w)>120*Math.PI/180){const e=u,A=t,s=i;u=o&&u>h?h+120*Math.PI/180*1:h+120*Math.PI/180*-1,d=arcToCubicCurves(t=g+n*Math.cos(u),i=p+a*Math.sin(u),A,s,n,a,r,0,o,[u,e,g,p])}w=u-h;const m=Math.cos(h),f=Math.sin(h),B=Math.cos(u),E=Math.sin(u),b=Math.tan(w/4),C=4/3*n*b,v=4/3*a*b,y=[e,A],F=[e+C*f,A-v*m],x=[t+C*E,i-v*B],S=[t,i];if(F[0]=2*y[0]-F[0],F[1]=2*y[1]-F[1],l)return[F,x,S].concat(d);{d=[F,x,S].concat(d);const e=[];for(let A=0;A{s.length>=4&&a.push(...pointsOnBezierCurves(s,A)),s=[]},l=()=>{o(),a.length&&(n.push(a),a=[])};for(const{key:e,data:A}of i)switch(e){case"M":l(),r=[A[0],A[1]],a.push(r);break;case"L":o(),a.push([A[0],A[1]]);break;case"C":if(!s.length){const e=a.length?a[a.length-1]:r;s.push([e[0],e[1]])}s.push([A[0],A[1]]),s.push([A[2],A[3]]),s.push([A[4],A[5]]);break;case"Z":o(),a.push([r[0],r[1]])}if(l(),!t)return n;const c=[];for(const e of n){const A=simplify(e,t);A.length&&c.push(A)}return c}const SUPPORTED_TAGS=["svg","path","g","use","circle","ellipse","rect","polyline","polygon"],nodeValidator=e=>SUPPORTED_TAGS.includes(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;function createTreeWalker(e){return document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:nodeValidator})}const presAttrs=(e,A)=>Object.assign(Object.assign(Object.assign({},getGroupAttrs(A)),presAttrsToElementValues(e)),filterAttrsToElementValues(e)),skippedUseAttrs=["id"],allwaysPassedUseAttrs=["x","y","width","height","href","xlink:href"],getDefElWithCorrectAttrs=(e,A)=>[...A.attributes].reduce(((t,i)=>(skippedUseAttrs.includes(i.value)||e.hasAttribute(i.name)&&!allwaysPassedUseAttrs.includes(i.name)||t.setAttribute(i.name,A.getAttribute(i.name)||""),t)),e.cloneNode()),walkers={svg:e=>{walk(e,e.tw.nextNode())},g:e=>{const A=Object.assign(Object.assign({},e),{tw:createTreeWalker(e.tw.currentNode),groups:[...e.groups,new Group(e.tw.currentNode)]});walk(A,A.tw.nextNode()),walk(e,e.tw.nextSibling())},use:e=>{const{root:A,tw:t,scene:i}=e,n=t.currentNode,a=n.getAttribute("href")||n.getAttribute("xlink:href");if(!a)throw new Error("unable to get id of use element");const r=A.querySelector(a);if(!r)throw new Error(`unable to find def element with id: ${a}`);const s=new ExcalidrawScene,o=getDefElWithCorrectAttrs(r,n);walk(Object.assign(Object.assign({},e),{scene:s,tw:createTreeWalker(o)}),o);const l=s.elements.pop();l&&i.elements.push(l),walk(e,e.tw.nextNode())},circle:e=>{const{tw:A,scene:t,groups:i}=e,n=A.currentNode,a=getNum(n,"r",0),r=2*a,s=getNum(n,"x",0)+getNum(n,"cx",0)-a,o=getNum(n,"y",0)+getNum(n,"cy",0)-a,l=getTransformMatrix(n,i),c=fromValues$1(r,0,0,0,0,r,0,0,0,0,1,0,s,o,0,1),d=multiply(create$1(),l,c),h=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],groupIds:i.map((e=>e.id))});t.elements.push(h),walk(e,A.nextNode())},ellipse:e=>{const{tw:A,scene:t,groups:i}=e,n=A.currentNode,a=getNum(n,"rx",0),r=getNum(n,"ry",0),s=getNum(n,"cx",0),o=getNum(n,"cy",0),l=getNum(n,"x",0)+s-a,c=getNum(n,"y",0)+o-r,d=2*a,h=2*r,u=getTransformMatrix(n,i),g=fromValues$1(d,0,0,0,0,h,0,0,0,0,1,0,l,c,0,1),p=multiply(create$1(),u,g),w=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:p[12],y:p[13],width:p[0],height:p[5],groupIds:i.map((e=>e.id))});t.elements.push(w),walk(e,A.nextNode())},line:e=>{walk(e,e.tw.nextNode())},polygon:e=>{const{tw:A,scene:t,groups:i}=e,n=A.currentNode,a=transformPoints(pointsAttrToPoints(n),getTransformMatrix(n,i)),r=a[0][0],s=a[0][1],o=a.map((([e,A])=>[e-r,A-s])),[l,c]=dimensionsFromPoints(o),d=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:o.concat([[0,0]]),x:r,y:s,width:l,height:c});t.elements.push(d),walk(e,e.tw.nextNode())},polyline:e=>{const{tw:A,scene:t,groups:i}=e,n=A.currentNode,a=getTransformMatrix(n,i),r=transformPoints(pointsAttrToPoints(n),a),s=r[0][0],o=r[0][1],l=r.map((([e,A])=>[e-s,A-o])),[c,d]=dimensionsFromPoints(l),h=has(n,"fill"),u=get(n,"fill"),g=!h||h&&"none"!==u,p=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:l.concat(g?[[0,0]]:[]),x:s,y:o,width:c,height:d});t.elements.push(p),walk(e,e.tw.nextNode())},rect:e=>{const{tw:A,scene:t,groups:i}=e,n=A.currentNode,a=getNum(n,"x",0),r=getNum(n,"y",0),s=getNum(n,"width",0),o=getNum(n,"height",0),l=getTransformMatrix(n,i),c=fromValues$1(s,0,0,0,0,o,0,0,0,0,1,0,a,r,0,1),d=multiply(create$1(),l,c),h=n.hasAttribute("rx")||n.hasAttribute("ry"),u=Object.assign(Object.assign(Object.assign({},createExRect()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],roundness:h?{type:ROUNDNESS.LEGACY}:null});t.elements.push(u),walk(e,e.tw.nextNode())},path:e=>{const{tw:A,scene:t,groups:i}=e,n=A.currentNode,a=getTransformMatrix(n,i),r=pointsOnPath(get(n,"d")),s=get(n,"fill","black"),o=get(n,"fill-rule","nonzero");let l=[],c=randomId();switch(o){case"nonzero":let e="clockwise";l=r.map(((A,t)=>{const r=transformPoints(A,clone(a)),o=r[0][0],l=r[0][1],[d,h]=dimensionsFromPoints(r),u=r.map((([e,A])=>[e-o,A-l])),g=getWindingOrder(u);0===t&&(e=g,c=randomId());let p=s;return e!==g&&(p="#FFFFFF"),Object.assign(Object.assign(Object.assign(Object.assign({},createExDraw()),{strokeWidth:0,strokeColor:"#00000000"}),presAttrs(n,i)),{points:u,backgroundColor:p,width:d,height:h,x:o+getNum(n,"x",0),y:l+getNum(n,"y",0),groupIds:[c]})}));break;case"evenodd":l=r.map(((e,A)=>{const t=transformPoints(e,clone(a)),r=t[0][0],s=t[0][1],[o,l]=dimensionsFromPoints(t),d=t.map((([e,A])=>[e-r,A-s]));return 0===A&&(c=randomId()),Object.assign(Object.assign(Object.assign({},createExDraw()),presAttrs(n,i)),{points:d,width:o,height:l,x:r+getNum(n,"x",0),y:s+getNum(n,"y",0)})}))}t.elements=t.elements.concat(l),walk(e,A.nextNode())}};function walk(e,A){if(!A)return;const t=A.nodeName;walkers[t]&&walkers[t](e)}const svgToExcalidraw=e=>{const A=(new DOMParser).parseFromString(e,"image/svg+xml"),t=A.querySelectorAll("parsererror"),i=t.length>0;let n=null;if(i)console.error("There were errors while parsing the given SVG: ",[...t].map((e=>e.innerHTML)));else{const e=createTreeWalker(A),t=new ExcalidrawScene;walk({tw:e,scene:t,groups:[],root:A},e.nextNode()),n=t.elements}return{hasErrors:i,errors:i?t:null,content:n}};B([r$c,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const{determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText}=excalidrawLib,GAP=4;class ExcalidrawAutomate{constructor(e,A){this.targetView=null,this.mostRecentMarkdownSVG=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.onCanvasColorChangeHook=null,this.activeScript=null,this.plugin=e,this.reset(),this.targetView=A}get obsidian(){return obsidian_module__namespace}getViewLastPointerPosition(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.currentPosition:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getAPI(e){return new ExcalidrawAutomate(this.plugin,e)}setFillStyle(e){switch(e){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(e){switch(e){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(e){return 0===e?(this.style.roundness={type:ROUNDNESS.LEGACY},"round"):(this.style.roundness=null,"sharp")}setFontFamily(e){switch(e){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(e){return 0===e?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(e){const A=nanoid();return e.forEach((e=>{var t,i;null===(i=null===(t=this.elementsDict[e])||void 0===t?void 0:t.groupIds)||void 0===i||i.push(A)})),A}async toClipboard(e){const A=e?await getTemplate(this.plugin,e,!1,new EmbeddedFilesLoader(this.plugin),0):null;let t=A?A.elements:[];t=t.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:t}))}getElements(){const e=[],A=Object.keys(this.elementsDict);for(let t=0;t{let A=e.plaintext?e.plaintext+"\n\n":"";const t=this.getElements().filter((e=>"text"===e.type));return A+="# Text Elements\n",t.forEach((e=>{var t,i;A+=`${null!==(t=e.rawText)&&void 0!==t?t:null!==(i=e.originalText)&&void 0!==i?i:e.text} ^${e.id}\n\n`})),this.getElements().filter((e=>"text"!==e.type&&e.link)).forEach((e=>{A+=`${e.link} ^${e.id}\n\n`})),A+=Object.keys(this.imagesDict).length>0?"\n# Embedded files\n":"",Object.keys(this.imagesDict).forEach((e=>{const t=this.imagesDict[e];t.latex?A+=`${e}: $$${t.latex}$$\n`:A+=`${e}: [[${t.file}]]\n`})),A})()+getMarkdownDrawingSection(JSON.stringify(G,null,"\t"),this.plugin.settings.compress))}async createSVG(e,A=!1,t,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!t&&(t={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createSVG(e,A,t,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}async createPNG(e,A=1,t,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!t&&(t={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createPNG(e,A,t,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}wrapText(e,A){return wrapTextAtCharLength(e,A,this.plugin.settings.forceWrap)}boxedElement(e,A,t,i,n,a){return{id:e,type:A,x:t,y:i,width:n,height:a,angle:this.style.angle,strokeColor:this.style.strokeColor,backgroundColor:this.style.backgroundColor,fillStyle:this.style.fillStyle,strokeWidth:this.style.strokeWidth,strokeStyle:this.style.strokeStyle,roughness:this.style.roughness,opacity:this.style.opacity,roundness:this.style.strokeSharpness?"round"===this.style.strokeSharpness?{type:ROUNDNESS.LEGACY}:null:this.style.roundness,seed:Math.floor(1e5*Math.random()),version:1,versionNonce:Math.floor(1e9*Math.random()),updated:Date.now(),isDeleted:!1,groupIds:[],boundElements:[],link:null,locked:!1}}addRect(e,A,t,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"rectangle",e,A,t,i),n}addDiamond(e,A,t,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"diamond",e,A,t,i),n}addEllipse(e,A,t,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"ellipse",e,A,t,i),n}addBlob(e,A,t,i){const n=.5*i,a=.5*t,r=a/9,s=.8*n,o=[],l=(t,i)=>{const l=t+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+t%2*r/6+e,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*s-s/2+t%2*s/6+A])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((e=>{const A=getLineBox(e),n=t/A.w,a=i/A.h;let r;for(r=0;r500){const e=500/Math.max(r.size.width,r.size.height);r.size.width=e*r.size.width,r.size.height=e*r.size.height}return this.elementsDict[n]=this.boxedElement(n,"image",e,A,r.size.width,r.size.height),this.elementsDict[n].fileId=s,this.elementsDict[n].scale=[1,1],n}async addLaTex(e,A,t){const i=nanoid(),n=await tex2dataURL(t,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:t},this.elementsDict[i]=this.boxedElement(i,"image",e,A,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(e,A,t,i,n){if(!this.elementsDict[e]||!this.elementsDict[t])return;if(["line","arrow","freedraw"].includes(this.elementsDict[e].type)||["line","arrow","freedraw"].includes(this.elementsDict[t].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,r=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,s=(e,A)=>{switch(e){case"bottom":return[(A.x+(A.x+A.width))/2,A.y+A.height+a];case"left":return[A.x-a,(A.y+(A.y+A.height))/2];case"right":return[A.x+A.width+a,(A.y+(A.y+A.height))/2];default:return[(A.x+(A.x+A.width))/2,A.y-a]}};let o,l,c,d;const h=this.elementsDict[e],u=this.elementsDict[t];if(!A||!i){const e=h.x+h.width/2,t=u.x+u.width/2,n=h.y+h.height/2,a=u.y+u.height/2;if(!A){const A=intersectElementWithLine(h,[t,a],[e,n],4);0===A.length?[o,l]=[e,n]:[o,l]=A[0]}if(!i){const A=intersectElementWithLine(u,[e,n],[t,a],4);0===A.length?[c,d]=[t,a]:[c,d]=A[0]}}A&&([o,l]=s(A,this.elementsDict[e])),i&&([c,d]=s(i,this.elementsDict[t]));const g=r+2,p=[];for(let e=0;eMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(t.x+t.points[1][0]/2-n.width/2,t.y+t.points[1][1]/2-n.height,A);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,roundness:null,fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(e){return this.plugin.isExcalidrawFile(e)}setView(e){if(!e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(e instanceof ExcalidrawView)this.targetView=e;else{const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}}if("active"==e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(e instanceof ExcalidrawView))return;this.targetView=e}if("first"==e){const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}return e instanceof ExcalidrawView&&(this.targetView=e),this.targetView}getExcalidrawAPI(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var e;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewElements()"),[];const A=this.targetView.excalidrawAPI;return A?A.getSceneElements():[]}deleteViewElements(e){var A,t,i;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","deleteViewElements()"),!1;const n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),r=n.getAppState();return this.targetView.updateScene({elements:a.filter((A=>!e.includes(A))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const e=this.getViewSelectedElements();return e?e[0]:null}getViewSelectedElements(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(e){var A,t,i,n;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?e&&"image"===e.type?null===(n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawData)||void 0===i?void 0:i.getFile(e.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewFileForImageElement()"),null)}copyViewElementsToEAforEditing(e){e.forEach((e=>{this.elementsDict[e.id]=cloneElement(e)}))}setViewModeEnabled(e){var A,t,i;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView;n.updateScene({appState:{viewModeEnabled:e}}),null===(i=null===(t=n.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===i||i.setExcalidrawViewMode(e)}viewUpdateScene(e,A=!1){var t;this.targetView&&(null===(t=this.targetView)||void 0===t?void 0:t._loaded)?this.targetView.updateScene(e,A):errorMessage("targetView not set","viewToggleFullScreen()")}viewZoomToElements(e,A){var t;this.targetView&&(null===(t=this.targetView)||void 0===t?void 0:t._loaded)?this.targetView.zoomToElements(e,A):errorMessage("targetView not set","viewToggleFullScreen()")}viewToggleFullScreen(e=!1){var A,t,i;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView,a=n.isFullscreen();e&&(n.updateScene({appState:{viewModeEnabled:!a},commitToHistory:!1}),null===(i=null===(t=this.targetView.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===i||i.setExcalidrawViewMode(!a)),a?n.exitFullscreen():n.gotoFullscreen()}connectObjectWithViewSelectedElement(e,A,t,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(e,A,a,t,i),delete this.elementsDict[a],!0}async addElementsToView(e=!1,A=!0,t=!1){var i;if(!this.targetView||!(null===(i=this.targetView)||void 0===i?void 0:i._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const n=this.getElements();return await this.targetView.addElements(n,e,A,this.imagesDict,t)}registerThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(e){return new EmbeddedFilesLoader(this.plugin,e)}getExportSettings(e,A){return{withBackground:e,withTheme:A}}getBoundingBox(e){const A=getCommonBoundingBox(e);return{topX:A.minX,topY:A.minY,width:A.maxX-A.minX,height:A.maxY-A.minY}}getMaximumGroups(e){return getMaximumGroups(e)}getLargestElement(e){if(!e||0===e.length)return null;let A=e[0];const t=e=>e.height*e.width;let i=t(e[0]);for(let n=1;ni&&(i=a,A=e[n])}return A}getCommonGroupForElements(e){const A=e.map((e=>e.groupIds)).reduce(((e,A)=>A.filter((A=>e.includes(A)))));return A.length>0?A[0]:null}getElementsInTheSameGroupWithElement(e,A){if(!e||!A)return[];const t="text"===e.type&&e.containerId?A.filter((A=>A.id===e.containerId)):[];return 0===e.groupIds.length?1===t.length?[e,t[0]]:[e]:1===t.length?A.filter((A=>A.groupIds.some((A=>e.groupIds.includes(A)))||A===t[0])):A.filter((A=>A.groupIds.some((A=>e.groupIds.includes(A)))))}intersectElementWithLine(e,A,t,i){return intersectElementWithLine(e,A,t,i)}getScriptSettings(){var e;return this.activeScript?null!==(e=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==e?e:{}:null}async setScriptSettings(e){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=e,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(e){if(!(e&&e instanceof obsidian_module.TFile))return null;if(!this.targetView)return null;const A=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return A.openFile(e,{active:!0}),A}measureText(e){var A,t;const i=_measureText(e,this.style.fontSize,this.style.fontFamily);return{width:null!==(A=i.w)&&void 0!==A?A:0,height:null!==(t=i.h)&&void 0!==t?t:0}}async getOriginalImageSize(e){var A;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","getOriginalImageSize()"),null;if(!e||"image"!==e.type)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const t=this.targetView.excalidrawData.getFile(e.fileId);if(!t)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const i="dark"===this.getExcalidrawAPI().getAppState().theme,n=t.getImage(i);return await getImageSize(n)}verifyMinimumPluginVersion(e){return PLUGIN_VERSION===e||isVersionNewerThanOther(PLUGIN_VERSION,e)}isExcalidrawView(e){return e instanceof ExcalidrawView}selectElementsInView(e){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?e&&0!==e.length&&this.getExcalidrawAPI().selectElements(e):errorMessage("targetView not set","selectElementsInView()")}generateElementId(){return nanoid()}cloneElement(e){const A=JSON.parse(JSON.stringify(e));return A.id=nanoid(),A}moveViewElementToZIndex(e,A){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((A=>A.id===e));if(0===a.length)return void errorMessage(`Element (id: ${e}) not found`,"moveViewElementToZIndex");if(A>=n.length)return void i.bringToFront(a);if(A<0)return void i.sendToBack(a);const r=n.indexOf(a[0]);n.splice(A,0,n.splice(r,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(e){const A=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(A[1],16),parseInt(A[2],16),parseInt(A[3],16)]}rgbToHexString(e){return O$1({r:e[0],g:e[1],b:e[2]}).stringHEX({alpha:!1})}hslToRgb(e){const A=O$1({h:e[0],s:e[1],l:e[2]});return[A.red,A.green,A.blue]}rgbToHsl(e){const A=O$1({r:e[0],g:e[1],b:e[2]});return[A.hue,A.saturation,A.lightness]}colorNameToHex(e){return COLOR_NAMES.has(e.toLowerCase().trim())?COLOR_NAMES.get(e.toLowerCase().trim()):e.trim()}getCM(e){if(e)return"string"==typeof e&&(e=this.colorNameToHex(e)),O$1(e);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}importSVG(e){const A=svgToExcalidraw(e);return A.hasErrors?(new obsidian_module.Notice(`There were errors while parsing the given SVG:\n${[...A.errors].map((e=>e.innerHTML))}`),!1):(this.copyViewElementsToEAforEditing(A.content),!0)}}async function initExcalidrawAutomate(e){await initFonts();const A=new ExcalidrawAutomate(e);return window.ExcalidrawAutomate=A,A}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(e){const A=[],[t,i]=e[0];for(let n=0;n-1||A.search("excalidraw-plugin: locked\n")>-1;await a.loadData(A,l,o?TextMode.parsed:TextMode.raw);let d=A.search("# Text Elements\n");-1==d&&(d=A.search("# Drawing\n"));let h=a.scene;t&&await i.loadSceneFiles(a,(e=>{if(e&&0!==e.length){for(const A of e)A.hasSVGwithBitmap&&(c=!0),a.scene.files[A.id]={mimeType:A.mimeType,id:A.id,dataURL:A.dataURL,created:A.created};h=scaleLoadedImage(a.scene,e).scene}}),n);let u=h.elements;if(s.hasGroupref){const A=s.hasSectionref?getTextElementsMatchingQuery(h.elements,["# "+s.sectionref],!0):h.elements.filter((e=>e.id===s.blockref));A.length>0&&(u=e.ea.getElementsInTheSameGroupWithElement(A[0],h.elements))}return s.hasTaskbone&&(u=u.filter((A=>{var t;return"freedraw"===A.type||"image"===A.type&&!e.isExcalidrawFile(null===(t=a.getFile(A.fileId))||void 0===t?void 0:t.file)}))),{elements:u,appState:h.appState,frontmatter:A.substring(0,d),files:h.files,hasSVGwithBitmap:c}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:c}}async function createPNG(e,A=1,t,i,n,a,r,s=[],o,l,c,d){var h,u,g,p,w,m,f;i||(i=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const B=e?await getTemplate(o,e,!0,i,l):null;let E=null!==(h=null==B?void 0:B.elements)&&void 0!==h?h:[];E=E.concat(s);const b=null!=d?d:{};return(null==B?void 0:B.files)&&Object.values(B.files).forEach((e=>{b[e.id]=e})),await getPNG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(u=null==B?void 0:B.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(w=null===(p=null==B?void 0:B.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==w?w:r},files:b},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,A)}async function createSVG(e,A=!1,t,i,n,a,r,s=[],o,l,c,d){var h,u,g,p,w,m,f;i||(i=new EmbeddedFilesLoader(o));const B=e?await getTemplate(o,e,!0,i,l):null;let E=null!==(h=null==B?void 0:B.elements)&&void 0!==h?h:[];E=E.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const b=null!=d?d:{};(null==B?void 0:B.files)&&Object.values(B.files).forEach((e=>{b[e.id]=e}));const C=await getSVG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(u=null==B?void 0:B.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(w=null===(p=null==B?void 0:B.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==w?w:r},files:b},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c),v=getEmbeddedFilenameParts(e);if(!v.hasGroupref&&(v.hasBlockref||v.hasSectionref)){let e=v.hasSectionref?getTextElementsMatchingQuery(E,["# "+v.sectionref],!0):E.filter((e=>e.id===v.blockref));if(e.length>0){const A=e[0].containerId;A&&(e=e.concat(E.filter((e=>e.id===A))));const t=o.ea.getBoundingBox(e),i=o.ea.getBoundingBox(E);C.viewBox.baseVal.x=t.topX-i.topX,C.viewBox.baseVal.y=t.topY-i.topY,C.viewBox.baseVal.width=t.width+2*c,C.viewBox.baseVal.height=t.height+2*c}}return(null==B?void 0:B.hasSVGwithBitmap)&&C.setAttribute("hasbitmap","true"),A?embedFontsInSVG(C,o):C}function estimateLineBound(e){let A=1/0,t=1/0,i=-1/0,n=-1/0;for(const[a,r]of e)A=Math.min(A,a),t=Math.min(t,r),i=Math.max(i,a),n=Math.max(n,r);return[A,t,i,n]}function estimateBounds(e){const A=getCommonBoundingBox(e);return[A.minX,A.minY,A.maxX,A.maxY]}function repositionElementsToCursor(e,A,t=!1){const[i,n,a,r]=estimateBounds(e);let[s,o]=[0,0];return[s,o]=t?[A.x-(i+a)/2,A.y-(n+r)/2]:[A.x-i,A.y-n],e.forEach((e=>{e.x=e.x+s,e.y=e.y+o})),e}function errorMessage(e,A){switch(e){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:A,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:A,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:A,message:"unknown error"})}}const insertLaTeXToView=e=>{const A=e.plugin.app,t=e.plugin.ea;new Prompt(A,t$d("ENTER_LATEX"),"","\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async A=>{A&&(t.reset(),await t.addLaTex(0,0,A),t.setView(e),t.addElementsToView(!0,!1,!0))}))},search=async e=>{const A=e.plugin.ea;A.reset(),A.setView(e);const t=A.getViewElements().filter((e=>"text"===e.type));if(0===t.length)return;let i=await ScriptEngine.inputPrompt(e.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=n.next()).done;)r.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),r=r.concat(i.split(" ").filter((e=>0!==e.length))),A.targetView.selectElementsMatchingQuery(t,r)},getTextElementsMatchingQuery=(e,A,t=!1)=>e&&0!==e.length&&A&&0!==A.length?e.filter((e=>"text"===e.type&&A.some((A=>{if(t){const t=e.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!t||2!==t.length)&&t[1]===A.toLowerCase()}return e.rawText.toLowerCase().replaceAll("\n"," ").trim().match(A.toLowerCase())})))):[],cloneElement=e=>Object.assign(Object.assign({},e),{version:e.version+1,updated:Date.now(),versionNonce:Math.floor(1e9*Math.random())}),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian_module.Modal{constructor(e){super(e.app),this.plugin=e}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const e=await obsidian_module.request({url:URL$1});if(!e)return new obsidian_module.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian_module.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((e=>{e.setAttribute("id",e.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((e=>{e.removeAttribute("target")}))}catch(e){errorlog({where:"ScriptInstallPrompt.onOpen",error:e}),new obsidian_module.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function toVal(e){var A,t,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(A=0;AReact__namespace.createElement("label",{className:clsx("ToolIcon ToolIcon_type_floating","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{this.toolsRef.current.setTheme(A.theme),this.toolsRef.current.toggleVisibility(A.zenModeEnabled||e)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 166 267"},React__namespace.createElement("path",{fill:"transparent",d:"M0 0h165.742v267.245H0z"}),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#bd7efc",strokeWidth:"0",d:"M55.5 96.49 39.92 57.05 111.28 10l4.58 36.54L55.5 95.65"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M55.5 96.49c-5.79-14.66-11.59-29.33-15.58-39.44M55.5 96.49c-3.79-9.59-7.58-19.18-15.58-39.44m0 0C60.13 43.72 80.34 30.4 111.28 10M39.92 57.05C60.82 43.27 81.73 29.49 111.28 10m0 0c.97 7.72 1.94 15.45 4.58 36.54M111.28 10c1.14 9.12 2.29 18.24 4.58 36.54m0 0C95.41 63.18 74.96 79.82 55.5 95.65m60.36-49.11C102.78 57.18 89.71 67.82 55.5 95.65m0 0v.84m0-.84v.84"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#e2c4ff",strokeWidth:"0",d:"m111.234 10.06 44.51 42.07-40.66-5.08-3.85-36.99"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 10.06c11.83 11.18 23.65 22.36 44.51 42.07m-44.51-42.07 44.51 42.07m0 0c-13.07-1.63-26.13-3.27-40.66-5.08m40.66 5.08c-11.33-1.41-22.67-2.83-40.66-5.08m0 0c-1.17-11.29-2.35-22.58-3.85-36.99m3.85 36.99c-1.47-14.17-2.95-28.33-3.85-36.99m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#2f005e",strokeWidth:"0",d:"m10 127.778 45.77-32.99-15.57-38.08-30.2 71.07"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M10 127.778c16.85-12.14 33.7-24.29 45.77-32.99M10 127.778c16.59-11.95 33.17-23.91 45.77-32.99m0 0c-6.14-15.02-12.29-30.05-15.57-38.08m15.57 38.08c-4.08-9.98-8.16-19.96-15.57-38.08m0 0c-11.16 26.27-22.33 52.54-30.2 71.07m30.2-71.07c-10.12 23.81-20.23 47.61-30.2 71.07m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#410380",strokeWidth:"0",d:"m40.208 235.61 15.76-140.4-45.92 32.92 30.16 107.48"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.208 235.61c3.7-33.01 7.41-66.02 15.76-140.4m-15.76 140.4c3.38-30.16 6.77-60.32 15.76-140.4m0 0c-10.83 7.76-21.66 15.53-45.92 32.92m45.92-32.92c-11.69 8.38-23.37 16.75-45.92 32.92m0 0c6.84 24.4 13.69 48.8 30.16 107.48m-30.16-107.48c6.67 23.77 13.33 47.53 30.16 107.48m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#943feb",strokeWidth:"0",d:"m111.234 240.434-12.47 16.67-42.36-161.87 58.81-48.3 40.46 5.25-44.44 188.25"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 240.434c-3.79 5.06-7.57 10.12-12.47 16.67m12.47-16.67c-4.43 5.93-8.87 11.85-12.47 16.67m0 0c-16.8-64.17-33.59-128.35-42.36-161.87m42.36 161.87c-9.74-37.2-19.47-74.41-42.36-161.87m0 0c15.03-12.35 30.07-24.7 58.81-48.3m-58.81 48.3c22.49-18.47 44.97-36.94 58.81-48.3m0 0c9.48 1.23 18.95 2.46 40.46 5.25m-40.46-5.25c13.01 1.69 26.02 3.38 40.46 5.25m0 0c-10.95 46.41-21.91 92.82-44.44 188.25m44.44-188.25c-12.2 51.71-24.41 103.42-44.44 188.25m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#6212b3",strokeWidth:"0",d:"m40.379 235.667 15.9-140.21 42.43 161.79-58.33-21.58"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.379 235.667c4.83-42.62 9.67-85.25 15.9-140.21m-15.9 140.21c5.84-51.52 11.69-103.03 15.9-140.21m0 0c10.98 41.87 21.96 83.74 42.43 161.79m-42.43-161.79c13.28 50.63 26.56 101.25 42.43 161.79m0 0c-11.8-4.37-23.6-8.74-58.33-21.58m58.33 21.58c-21.73-8.04-43.47-16.08-58.33-21.58m0 0s0 0 0 0m0 0s0 0 0 0"}))))),this.plugin=e,this.toolsRef=A}}class ActionButton extends React__namespace.Component{constructor(e){super(e),this.toastMessageTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:e=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0),this.props.action(e)},onPointerDown:()=>{this.toastMessageTimeout=window.setTimeout((()=>{var e;return null===(e=this.props.view.excalidrawAPI)||void 0===e?void 0:e.setToast({message:this.props.title})}),300)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const ICONS={exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190",fill:"var(--icon-fill-color)"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),exportSVG:React__namespace.createElement("svg",{viewBox:"0 0 28 28",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"1"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"S")),exportPNG:React__namespace.createElement("svg",{viewBox:"0 0 28 28",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"1"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"P")),exportExcalidraw:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",strokeWidth:"2"},React__namespace.createElement("g",{transform:"translate(30,5)"},React__namespace.createElement("path",{d:"M14.45 1.715c-2.723 2.148-6.915 5.797-10.223 8.93l-2.61 2.445.477 3.207c.258 1.75.738 5.176 1.031 7.582.332 2.406.66 4.668.773 4.996.145.438 0 .656-.406.656-.699 0-.734-.183 1.176 5.832.7 2.297 1.363 4.414 1.434 4.633.074.254.367.363.699.254.332-.145.515-.438.406-.691-.113-.293.074-.586.367-.696.403-.144.367-.437-.258-1.492-.992-1.64-3.53-15.64-3.675-20.164-.11-3.207-.11-3.242 1.25-5.066 1.324-1.786 4.375-4.485 9.078-7.91 1.324-.985 2.648-2.079 3.015-2.446.551-.656.809-.472 5.442 4.414 2.683 2.805 5.664 5.688 6.617 6.414l1.766 1.313-1.36 2.844c-.734 1.53-3.715 7.437-6.656 13.054-6.137 11.813-4.887 10.68-12.02 10.79l-4.632.038-1.547 1.75c-1.617 1.86-1.836 2.551-1.063 3.72.293.398.512 1.054.512 1.456 0 .656.258.766 1.73.84.918.035 1.762.145 1.875.254.11.11.258 2.371.368 5.031l.144 4.813-2.46 5.25C1.616 72.516 0 76.527 0 77.84c0 .691.148 1.273.293 1.273.367 0 .367-.035 15.332-30.988 6.95-14.363 13.531-27.89 14.633-30.113 1.101-2.227 2.094-4.266 2.168-4.559.074-.328-2.461-2.844-6.508-6.379C22.281 3.864 19.082.95 18.785.621c-.844-1.023-2.094-.695-4.336 1.094zM15.7 43.64c-1.692 3.246-1.766 3.28-6.4 3.5-4.081.218-4.152.183-4.152-.582 0-.438-.148-1.024-.332-1.313-.222-.328-.074-.914.442-1.715l.808-1.238h3.676c2.024-.04 4.34-.184 5.149-.328.808-.149 1.507-.219 1.578-.184.074.035-.293.875-.77 1.86zm-3.09 5.832c-.294.765-1.067 2.37-1.692 3.574-1.027 2.043-1.137 2.113-1.395 1.277-.148-.511-.257-2.008-.296-3.355-.036-2.66-.11-2.625 2.98-2.809l.992-.035zm0 0"}),React__namespace.createElement("path",{d:"M15.55 10.39c-.66.473-.843.95-.843 2.153 0 1.422.11 1.64 1.102 2.039.992.402 1.25.367 2.39-.398 1.508-1.024 1.543-1.278.442-2.918-.957-1.422-1.914-1.676-3.09-.875zm2.098 1.313c.586 1.02.22 1.785-.882 1.785-.993 0-1.434-.984-.883-1.968.441-.801 1.285-.727 1.765.183zm0 0M38.602 18.594c0 .183-.22.363-.477.363-.219 0-.844 1.023-1.324 2.262-1.469 3.793-16.176 32.629-16.211 31.718 0-.472-.223-.8-.59-.8-.516 0-.59.289-.367 1.71.219 1.641.074 2.008-5.149 12.071-2.941 5.723-6.101 11.703-7.02 13.305-.956 1.68-1.69 3.5-1.765 4.265-.11 1.313.035 1.496 3.235 4.23 1.84 1.606 4.191 3.61 5.222 4.52 4.63 4.196 6.801 5.871 7.387 5.762.883-.145 14.523-14.328 14.559-15.129 0-.367-.66-5.906-1.47-12.324-1.398-10.938-2.722-23.734-2.573-24.973.109-.765-.442-4.633-.844-6.308-.332-1.313-.184-1.86 2.46-7.84 1.544-3.535 3.567-7.875 4.45-9.625.844-1.75 1.582-3.281 1.582-3.39 0-.11-.258-.18-.55-.18-.298 0-.555.144-.555.363zm-8.454 27.234c.403 2.55 1.211 8.676 1.801 13.598 1.14 9.043 2.461 19.07 2.832 21.62.219 1.278.07 1.532-2.316 4.157-4.156 4.629-8.567 9.188-10.074 10.356l-1.399 1.093-7.168-6.636c-6.617-6.051-7.168-6.672-6.765-7.403.222-.398 2.097-3.789 4.156-7.508 2.058-3.718 4.777-8.68 6.027-11.011 1.29-2.371 2.465-4.41 2.684-4.52.258-.148.332 3.535.258 11.375-.149 11.703-.11 11.739 1.066 11.485.148 0 .258-5.907.258-13.09V56.293l3.86-7.656c2.132-4.23 3.898-7.621 3.972-7.586.07.039.441 2.187.808 4.777zm0 0"}))),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),ocr:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"m6 18 6-12 6 12"}),React__namespace.createElement("path",{d:"M8 14h8"}),React__namespace.createElement("path",{d:"M3 7V5a2 2 0 0 1 2-2h2"}),React__namespace.createElement("path",{d:"M17 3h2a2 2 0 0 1 2 2v2"}),React__namespace.createElement("path",{d:"M21 17v2a2 2 0 0 1-2 2h-2"}),React__namespace.createElement("path",{d:"M7 21H5a2 2 0 0 1-2-2v-2"})),scriptEngine:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"4"},React__namespace.createElement("g",{transform:"translate(-8,-8)"},React__namespace.createElement("path",{d:"M24.318 37.983c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749m.126-.104c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749",fill:"none",strokeWidth:"2"}),React__namespace.createElement("path",{d:"M81.235 56.502a23.3 23.3 0 0 1-1.46 8.068 20.785 20.785 0 0 1-1.762 3.72 24.068 24.068 0 0 1-5.337 6.26 22.575 22.575 0 0 1-3.449 2.358 23.726 23.726 0 0 1-7.803 2.803 24.719 24.719 0 0 1-8.333 0 24.102 24.102 0 0 1-4.028-1.074 23.71 23.71 0 0 1-3.776-1.729 23.259 23.259 0 0 1-6.369-5.265 23.775 23.775 0 0 1-2.416-3.353 24.935 24.935 0 0 1-1.762-3.72 23.765 23.765 0 0 1-1.083-3.981 23.454 23.454 0 0 1 0-8.173c.252-1.336.604-2.698 1.083-3.956a24.935 24.935 0 0 1 1.762-3.72 22.587 22.587 0 0 1 2.416-3.378c.881-1.048 1.888-2.017 2.946-2.908a24.38 24.38 0 0 1 3.423-2.357 23.71 23.71 0 0 1 3.776-1.73 21.74 21.74 0 0 1 4.028-1.047 23.437 23.437 0 0 1 8.333 0 24.282 24.282 0 0 1 7.803 2.777 26.198 26.198 0 0 1 3.45 2.357 24.62 24.62 0 0 1 5.336 6.287 20.785 20.785 0 0 1 1.762 3.72 21.32 21.32 0 0 1 1.083 3.955c.251 1.336.302 3.405.377 4.086.05.681.05-.68 0 0",fill:"none"}),React__namespace.createElement("path",{d:"M69.404 56.633c-6.596-3.3-13.216-6.6-19.51-9.744m19.51 9.744c-6.747-3.379-13.493-6.758-19.51-9.744m0 0v19.489m0-19.49v19.49m0 0c4.355-2.148 8.71-4.322 19.51-9.745m-19.51 9.745c3.978-1.965 7.93-3.956 19.51-9.745m0 0h0m0 0h0"}))),openLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),openLinkProperties:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8",fill:"var(--icon-fill-color)"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",strokeWidth:"10",fill:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"})),importSVG:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 526 526"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"m133.462 71 .33-6.54.97-6.34 1.58-6.13 2.16-5.88 2.69-5.6 3.21-5.27 3.69-4.93 4.13-4.55 4.55-4.13 4.93-3.69 5.27-3.21 5.6-2.69 5.88-2.16 6.13-1.58 6.34-.97 6.54-.33h160v128l.16 3.28.49 3.18.79 3.07 1.07 2.94 1.35 2.8 1.6 2.63 1.84 2.47 2.06 2.27 2.27 2.06 2.47 1.84 2.63 1.6 2.8 1.35 2.94 1.07 3.07.79 3.18.49 3.28.16h128v288l-.33 6.54-.97 6.34-1.58 6.13-2.16 5.88-2.69 5.6-3.21 5.27-3.69 4.93-4.13 4.55-4.55 4.13-4.93 3.69-5.27 3.21-5.6 2.69-5.88 2.16-6.13 1.58-6.34.97-6.54.33h-256l-6.54-.33-6.34-.97-6.13-1.58-5.88-2.16-5.6-2.69-5.27-3.21-4.93-3.69-4.55-4.13-4.13-4.55-3.69-4.93-3.21-5.27-2.69-5.6-2.16-5.88-1.58-6.13-.97-6.34-.33-6.54V343h174.1l-39 39-1.65 1.83-1.43 1.94-1.22 2.05-.99 2.13-.77 2.2-.55 2.25-.33 2.29-.11 2.3.11 2.3.33 2.28.55 2.24.77 2.19.99 2.12 1.22 2.04 1.43 1.93 1.65 1.81 1.83 1.64 1.94 1.42 2.05 1.2 2.13.99 2.2.76 2.25.56 2.29.33 2.3.11 2.3-.1 2.28-.33 2.24-.54 2.19-.77 2.12-.98 2.04-1.21 1.93-1.43 1.81-1.65 80-80 1.65-1.83 1.43-1.94 1.22-2.05.99-2.13.77-2.2.55-2.25.33-2.29.11-2.3-.11-2.3-.33-2.28-.55-2.24-.77-2.19-.99-2.12-1.22-2.04-1.43-1.93-1.65-1.81-80-80-1.83-1.65-1.94-1.43-2.05-1.22-2.13-.99-2.2-.77-2.25-.55-2.29-.33-2.3-.11-2.3.11-2.28.33-2.24.55-2.19.77-2.12.99-2.04 1.22-1.93 1.43-1.81 1.65-1.64 1.83-1.42 1.94-1.2 2.05-.99 2.13-.76 2.2-.56 2.25-.33 2.29-.11 2.3.1 2.3.33 2.28.54 2.24.77 2.19.98 2.12 1.21 2.04 1.43 1.93 1.65 1.81 39 39h-174.1V71"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M133.462 71s0 0 0 0m0 0s0 0 0 0m0 0 .33-6.54m-.33 6.54c.13-2.57.26-5.13.33-6.54m0 0c.36-2.33.72-4.67.97-6.34m-.97 6.34c.35-2.26.69-4.53.97-6.34m0 0c.51-1.99 1.03-3.98 1.58-6.13m-1.58 6.13c.4-1.56.81-3.12 1.58-6.13m0 0c.81-2.22 1.62-4.43 2.16-5.88m-2.16 5.88c.45-1.22.9-2.44 2.16-5.88m0 0c.72-1.51 1.45-3.01 2.69-5.6m-2.69 5.6c.69-1.45 1.39-2.9 2.69-5.6m0 0c.93-1.52 1.86-3.05 3.21-5.27m-3.21 5.27c.97-1.59 1.94-3.18 3.21-5.27m0 0c.86-1.15 1.71-2.29 3.69-4.93m-3.69 4.93c.78-1.04 1.56-2.08 3.69-4.93m0 0c1.53-1.69 3.07-3.38 4.13-4.55m-4.13 4.55c1.54-1.69 3.07-3.38 4.13-4.55m0 0c1.03-.93 2.06-1.87 4.55-4.13m-4.55 4.13c.98-.89 1.97-1.78 4.55-4.13m0 0c1.64-1.23 3.28-2.46 4.93-3.69m-4.93 3.69c1.72-1.29 3.45-2.58 4.93-3.69m0 0c1.11-.68 2.23-1.35 5.27-3.21m-5.27 3.21c1.5-.91 3.01-1.83 5.27-3.21m0 0c1.87-.89 3.73-1.79 5.6-2.69m-5.6 2.69c2.09-1 4.17-2.01 5.6-2.69m0 0c1.72-.64 3.44-1.27 5.88-2.16m-5.88 2.16c1.94-.72 3.89-1.43 5.88-2.16m0 0c2.3-.59 4.6-1.19 6.13-1.58m-6.13 1.58c2.32-.6 4.65-1.2 6.13-1.58m0 0c2.06-.31 4.12-.63 6.34-.97m-6.34.97c2.34-.36 4.69-.72 6.34-.97m0 0c2.05-.1 4.09-.21 6.54-.33m-6.54.33c2.06-.1 4.12-.21 6.54-.33m0 0h160m-160 0h160m0 0v128m0-128v128m0 0s0 0 0 0m0 0s0 0 0 0m0 0 .16 3.28m-.16-3.28c.06 1.16.12 2.32.16 3.28m0 0c.13.82.26 1.64.49 3.18m-.49-3.18c.18 1.13.35 2.26.49 3.18m0 0c.24.95.49 1.91.79 3.07m-.79-3.07c.28 1.1.56 2.2.79 3.07m0 0c.39 1.06.78 2.13 1.07 2.94m-1.07-2.94c.42 1.15.84 2.3 1.07 2.94m0 0c.38.79.76 1.57 1.35 2.8m-1.35-2.8c.4.82.79 1.64 1.35 2.8m0 0c.45.75.91 1.5 1.6 2.63m-1.6-2.63c.4.65.8 1.31 1.6 2.63m0 0c.56.76 1.13 1.52 1.84 2.47m-1.84-2.47c.58.79 1.17 1.57 1.84 2.47m0 0c.75.82 1.5 1.65 2.06 2.27m-2.06-2.27c.75.82 1.5 1.65 2.06 2.27m0 0c.74.66 1.47 1.33 2.27 2.06m-2.27-2.06c.89.81 1.78 1.61 2.27 2.06m0 0c.69.51 1.37 1.02 2.47 1.84m-2.47-1.84c.68.5 1.35 1.01 2.47 1.84m0 0c.81.49 1.62.99 2.63 1.6m-2.63-1.6c.74.45 1.47.9 2.63 1.6m0 0c.72.35 1.43.69 2.8 1.35m-2.8-1.35c.61.3 1.22.59 2.8 1.35m0 0c.85.31 1.69.62 2.94 1.07m-2.94-1.07c1.03.38 2.07.75 2.94 1.07m0 0c.83.22 1.67.43 3.07.79m-3.07-.79 3.07.79m0 0c1.07.16 2.14.33 3.18.49m-3.18-.49c1.2.18 2.39.36 3.18.49m0 0 3.28.16m-3.28-.16c.97.04 1.93.09 3.28.16m0 0h128m-128 0h128m0 0v288m0-288v288m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.1 2.02-.2 4.04-.33 6.54m.33-6.54c-.13 2.52-.26 5.05-.33 6.54m0 0c-.33 2.14-.66 4.29-.97 6.34m.97-6.34c-.32 2.06-.63 4.12-.97 6.34m0 0c-.59 2.28-1.17 4.55-1.58 6.13m1.58-6.13c-.53 2.07-1.07 4.14-1.58 6.13m0 0c-.73 1.99-1.46 3.97-2.16 5.88m2.16-5.88c-.72 1.97-1.44 3.94-2.16 5.88m0 0c-.94 1.97-1.89 3.93-2.69 5.6m2.69-5.6c-.91 1.89-1.82 3.77-2.69 5.6m0 0c-.89 1.46-1.78 2.92-3.21 5.27m3.21-5.27c-.65 1.05-1.29 2.11-3.21 5.27m0 0c-1.13 1.51-2.25 3.01-3.69 4.93m3.69-4.93c-1.29 1.72-2.58 3.44-3.69 4.93m0 0c-1.29 1.42-2.58 2.84-4.13 4.55m4.13-4.55-4.13 4.55m0 0-4.55 4.13m4.55-4.13-4.55 4.13m0 0c-1.2.9-2.41 1.8-4.93 3.69m4.93-3.69-4.93 3.69m0 0c-1.56.95-3.13 1.9-5.27 3.21m5.27-3.21c-1.99 1.21-3.98 2.42-5.27 3.21m0 0c-1.8.86-3.6 1.73-5.6 2.69m5.6-2.69c-1.34.64-2.67 1.28-5.6 2.69m0 0c-2.24.82-4.48 1.65-5.88 2.16m5.88-2.16c-1.38.51-2.77 1.02-5.88 2.16m0 0c-1.46.38-2.93.76-6.13 1.58m6.13-1.58c-1.54.4-3.09.79-6.13 1.58m0 0c-2.12.32-4.24.65-6.34.97m6.34-.97c-2.47.38-4.94.75-6.34.97m0 0c-2.23.11-4.46.22-6.54.33m6.54-.33c-1.97.1-3.93.2-6.54.33m0 0h-256m256 0h-256m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-2.33-.12-4.66-.24-6.54-.33m6.54.33c-1.33-.07-2.65-.13-6.54-.33m0 0c-1.88-.29-3.77-.58-6.34-.97m6.34.97c-2.07-.32-4.14-.63-6.34-.97m0 0c-1.52-.39-3.04-.79-6.13-1.58m6.13 1.58c-2.02-.52-4.04-1.04-6.13-1.58m0 0c-1.6-.59-3.19-1.17-5.88-2.16m5.88 2.16c-1.9-.7-3.8-1.39-5.88-2.16m0 0c-1.41-.68-2.82-1.36-5.6-2.69m5.6 2.69c-1.6-.77-3.2-1.54-5.6-2.69m0 0c-1.4-.86-2.81-1.71-5.27-3.21m5.27 3.21c-2.08-1.27-4.17-2.54-5.27-3.21m0 0c-1.72-1.29-3.43-2.57-4.93-3.69m4.93 3.69c-1.79-1.34-3.57-2.67-4.93-3.69m0 0c-1.18-1.07-2.36-2.15-4.55-4.13m4.55 4.13c-1.64-1.49-3.27-2.97-4.55-4.13m0 0c-1.07-1.19-2.15-2.37-4.13-4.55m4.13 4.55c-1.46-1.61-2.93-3.23-4.13-4.55m0 0-3.69-4.93m3.69 4.93c-.88-1.17-1.76-2.35-3.69-4.93m0 0c-.83-1.37-1.67-2.75-3.21-5.27m3.21 5.27c-1.15-1.89-2.3-3.79-3.21-5.27m0 0c-1.03-2.14-2.05-4.27-2.69-5.6m2.69 5.6c-.68-1.43-1.37-2.85-2.69-5.6m0 0c-.8-2.17-1.59-4.34-2.16-5.88m2.16 5.88c-.82-2.22-1.63-4.44-2.16-5.88m0 0c-.47-1.82-.94-3.64-1.58-6.13m1.58 6.13c-.37-1.44-.74-2.88-1.58-6.13m0 0-.97-6.34m.97 6.34c-.3-1.98-.61-3.97-.97-6.34m0 0c-.13-2.54-.26-5.07-.33-6.54m.33 6.54-.33-6.54m0 0V343m0 112V343m0 0h174.1m-174.1 0h174.1m0 0-39 39m39-39-39 39m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.65.72-1.3 1.44-1.65 1.83m1.65-1.83c-.34.38-.68.76-1.65 1.83m0 0c-.35.47-.7.95-1.43 1.94m1.43-1.94c-.38.5-.75 1.01-1.43 1.94m0 0c-.32.54-.64 1.08-1.22 2.05m1.22-2.05c-.38.64-.76 1.28-1.22 2.05m0 0c-.2.45-.41.89-.99 2.13m.99-2.13c-.38.82-.76 1.64-.99 2.13m0 0c-.18.53-.36 1.05-.77 2.2m.77-2.2c-.3.88-.61 1.75-.77 2.2m0 0c-.15.61-.3 1.22-.55 2.25m.55-2.25c-.16.68-.33 1.35-.55 2.25m0 0-.33 2.29m.33-2.29c-.13.9-.26 1.79-.33 2.29m0 0-.11 2.3m.11-2.3c-.03.59-.06 1.19-.11 2.3m0 0c.03.54.05 1.08.11 2.3m-.11-2.3c.03.72.07 1.44.11 2.3m0 0c.1.71.21 1.43.33 2.28m-.33-2.28c.1.71.21 1.42.33 2.28m0 0c.22.88.44 1.77.55 2.24m-.55-2.24c.16.66.33 1.32.55 2.24m0 0c.26.72.51 1.45.77 2.19m-.77-2.19c.25.69.49 1.39.77 2.19m0 0c.33.7.65 1.4.99 2.12m-.99-2.12c.37.79.74 1.57.99 2.12m0 0c.38.63.75 1.25 1.22 2.04m-1.22-2.04c.4.67.8 1.35 1.22 2.04m0 0c.38.52.77 1.05 1.43 1.93m-1.43-1.93c.38.52.77 1.05 1.43 1.93m0 0c.46.5.91 1 1.65 1.81m-1.65-1.81c.35.39.7.77 1.65 1.81m0 0c.37.33.75.67 1.83 1.64m-1.83-1.64c.43.39.87.78 1.83 1.64m0 0c.62.45 1.25.91 1.94 1.42m-1.94-1.42c.45.32.9.65 1.94 1.42m0 0c.53.3 1.05.61 2.05 1.2m-2.05-1.2c.43.25.86.5 2.05 1.2m0 0c.78.36 1.56.72 2.13.99m-2.13-.99c.54.25 1.08.5 2.13.99m0 0c.67.23 1.33.46 2.2.76m-2.2-.76c.51.17 1.03.35 2.2.76m0 0c.87.22 1.73.43 2.25.56m-2.25-.56c.79.2 1.57.39 2.25.56m0 0 2.29.33m-2.29-.33c.58.08 1.16.16 2.29.33m0 0c.91.04 1.82.09 2.3.11m-2.3-.11c.89.04 1.79.09 2.3.11m0 0c.48-.02.96-.04 2.3-.1m-2.3.1c.73-.03 1.47-.06 2.3-.1m0 0c.61-.09 1.22-.18 2.28-.33m-2.28.33c.58-.09 1.17-.17 2.28-.33m0 0c.79-.19 1.59-.38 2.24-.54m-2.24.54c.88-.21 1.75-.42 2.24-.54m0 0c.7-.25 1.4-.49 2.19-.77m-2.19.77c.5-.18 1.01-.35 2.19-.77m0 0c.56-.26 1.13-.52 2.12-.98m-2.12.98c.69-.31 1.37-.63 2.12-.98m0 0c.63-.37 1.25-.74 2.04-1.21m-2.04 1.21c.8-.48 1.6-.95 2.04-1.21m0 0c.67-.5 1.34-.99 1.93-1.43m-1.93 1.43c.52-.39 1.05-.78 1.93-1.43m0 0c.43-.39.87-.79 1.81-1.65m-1.81 1.65c.42-.38.83-.76 1.81-1.65m0 0 80-80m-80 80 80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c.33-.37.67-.74 1.65-1.83m-1.65 1.83c.63-.7 1.27-1.4 1.65-1.83m0 0c.3-.4.59-.79 1.43-1.94m-1.43 1.94c.42-.57.84-1.13 1.43-1.94m0 0c.4-.68.8-1.35 1.22-2.05m-1.22 2.05c.47-.79.93-1.57 1.22-2.05m0 0c.28-.62.57-1.23.99-2.13m-.99 2.13c.3-.65.6-1.31.99-2.13m0 0c.26-.74.51-1.47.77-2.2m-.77 2.2.77-2.2m0 0 .55-2.25m-.55 2.25c.2-.84.41-1.68.55-2.25m0 0 .33-2.29m-.33 2.29c.11-.75.21-1.49.33-2.29m0 0c.03-.54.05-1.08.11-2.3m-.11 2.3c.04-.91.09-1.81.11-2.3m0 0c-.03-.7-.07-1.41-.11-2.3m.11 2.3c-.04-.75-.07-1.49-.11-2.3m0 0c-.08-.52-.15-1.04-.33-2.28m.33 2.28c-.09-.63-.18-1.26-.33-2.28m0 0-.55-2.24m.55 2.24c-.19-.79-.39-1.58-.55-2.24m0 0-.77-2.19m.77 2.19c-.25-.72-.51-1.44-.77-2.19m0 0c-.23-.5-.46-.99-.99-2.12m.99 2.12c-.39-.83-.78-1.66-.99-2.12m0 0c-.42-.7-.83-1.39-1.22-2.04m1.22 2.04c-.32-.53-.64-1.06-1.22-2.04m0 0c-.47-.64-.95-1.28-1.43-1.93m1.43 1.93c-.47-.63-.94-1.27-1.43-1.93m0 0c-.44-.49-.89-.98-1.65-1.81m1.65 1.81c-.64-.7-1.28-1.4-1.65-1.81m0 0-80-80m80 80-80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.72-.65-1.44-1.3-1.83-1.65m1.83 1.65c-.68-.62-1.37-1.23-1.83-1.65m0 0c-.51-.38-1.02-.75-1.94-1.43m1.94 1.43c-.58-.43-1.17-.87-1.94-1.43m0 0c-.73-.43-1.45-.86-2.05-1.22m2.05 1.22c-.77-.45-1.53-.9-2.05-1.22m0 0c-.46-.21-.93-.43-2.13-.99m2.13.99-2.13-.99m0 0c-.83-.29-1.65-.57-2.2-.77m2.2.77c-.56-.19-1.12-.39-2.2-.77m0 0c-.65-.16-1.29-.31-2.25-.55m2.25.55c-.57-.14-1.13-.27-2.25-.55m0 0c-.74-.11-1.48-.21-2.29-.33m2.29.33c-.51-.07-1.02-.15-2.29-.33m0 0c-.77-.04-1.54-.07-2.3-.11m2.3.11c-.88-.04-1.76-.08-2.3-.11m0 0c-.49.02-.98.05-2.3.11m2.3-.11c-.88.04-1.77.09-2.3.11m0 0c-.62.09-1.23.18-2.28.33m2.28-.33c-.6.09-1.2.17-2.28.33m0 0c-.45.11-.91.22-2.24.55m2.24-.55c-.79.2-1.58.39-2.24.55m0 0c-.56.2-1.12.4-2.19.77m2.19-.77c-.51.18-1.01.36-2.19.77m0 0c-.85.4-1.7.8-2.12.99m2.12-.99c-.51.24-1.02.48-2.12.99m0 0c-.6.36-1.2.71-2.04 1.22m2.04-1.22c-.46.27-.91.55-2.04 1.22m0 0c-.49.36-.99.73-1.93 1.43m1.93-1.43-1.93 1.43m0 0c-.42.38-.85.77-1.81 1.65m1.81-1.65c-.69.63-1.39 1.27-1.81 1.65m0 0-1.64 1.83m1.64-1.83c-.54.6-1.08 1.21-1.64 1.83m0 0c-.53.73-1.07 1.47-1.42 1.94m1.42-1.94c-.36.5-.73 1-1.42 1.94m0 0c-.35.61-.7 1.21-1.2 2.05m1.2-2.05c-.33.58-.67 1.15-1.2 2.05m0 0c-.26.57-.53 1.15-.99 2.13m.99-2.13c-.39.85-.78 1.69-.99 2.13m0 0c-.24.7-.48 1.4-.76 2.2m.76-2.2c-.17.51-.35 1.01-.76 2.2m0 0c-.17.68-.33 1.35-.56 2.25m.56-2.25c-.2.79-.39 1.57-.56 2.25m0 0c-.09.65-.18 1.29-.33 2.29m.33-2.29c-.06.48-.13.95-.33 2.29m0 0c-.03.71-.07 1.43-.11 2.3m.11-2.3-.11 2.3m0 0c.04.86.08 1.73.1 2.3m-.1-2.3c.03.8.07 1.6.1 2.3m0 0c.13.88.25 1.76.33 2.28m-.33-2.28c.11.73.21 1.47.33 2.28m0 0c.18.74.36 1.49.54 2.24m-.54-2.24c.15.64.31 1.28.54 2.24m0 0c.2.57.4 1.15.77 2.19m-.77-2.19c.21.58.41 1.17.77 2.19m0 0c.23.5.46 1.01.98 2.12m-.98-2.12c.35.76.71 1.53.98 2.12m0 0c.38.64.76 1.29 1.21 2.04m-1.21-2.04 1.21 2.04m0 0c.45.6.89 1.21 1.43 1.93m-1.43-1.93c.3.4.6.81 1.43 1.93m0 0 1.65 1.81m-1.65-1.81c.47.52.94 1.03 1.65 1.81m0 0 39 39m-39-39 39 39m0 0h-174.1m174.1 0h-174.1m0 0V71m0 223.9V71m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"18",d:"M135 343.068H31m104 0H31m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.74-.04-1.48-.07-2.46-.12m2.46.12c-.77-.04-1.54-.08-2.46-.12m0 0c-.87-.14-1.75-.27-2.39-.37m2.39.37c-.55-.09-1.1-.17-2.39-.37m0 0c-.87-.22-1.74-.44-2.3-.59m2.3.59c-.62-.15-1.24-.31-2.3-.59m0 0c-.82-.29-1.64-.59-2.21-.8m2.21.8c-.52-.18-1.03-.37-2.21-.8m0 0c-.55-.26-1.09-.52-2.1-1.01m2.1 1.01c-.64-.31-1.28-.61-2.1-1.01m0 0c-.74-.45-1.48-.89-1.98-1.2m1.98 1.2c-.42-.25-.84-.51-1.98-1.2m0 0c-.7-.52-1.41-1.05-1.84-1.38m1.84 1.38c-.37-.28-.75-.56-1.84-1.38m0 0c-.4-.36-.8-.71-1.71-1.54m1.71 1.54c-.35-.31-.7-.63-1.71-1.54m0 0c-.43-.47-.85-.95-1.54-1.71m1.54 1.71c-.61-.68-1.23-1.36-1.54-1.71m0 0c-.29-.38-.58-.76-1.38-1.84m1.38 1.84c-.54-.71-1.08-1.43-1.38-1.84m0 0c-.46-.76-.92-1.52-1.2-1.98m1.2 1.98c-.45-.74-.89-1.47-1.2-1.98m0 0c-.37-.77-.74-1.53-1.01-2.1m1.01 2.1c-.3-.62-.6-1.25-1.01-2.1m0 0c-.2-.54-.39-1.07-.8-2.21m.8 2.21c-.2-.54-.4-1.09-.8-2.21m0 0c-.22-.85-.44-1.71-.59-2.3m.59 2.3c-.12-.46-.24-.92-.59-2.3m0 0c-.11-.72-.22-1.43-.37-2.39m.37 2.39c-.08-.48-.15-.96-.37-2.39m0 0c-.03-.74-.07-1.48-.12-2.46m.12 2.46c-.04-.79-.08-1.59-.12-2.46m0 0c.04-.74.07-1.49.12-2.46m-.12 2.46.12-2.46m0 0c.08-.53.16-1.07.37-2.39m-.37 2.39c.09-.56.17-1.12.37-2.39m0 0c.17-.69.35-1.38.59-2.3m-.59 2.3c.15-.61.31-1.23.59-2.3m0 0c.17-.48.34-.96.8-2.21m-.8 2.21c.2-.55.4-1.1.8-2.21m0 0c.25-.52.49-1.03 1.01-2.1m-1.01 2.1c.36-.76.73-1.52 1.01-2.1m0 0c.43-.72.87-1.44 1.2-1.98m-1.2 1.98c.27-.45.55-.91 1.2-1.98m0 0c.54-.73 1.09-1.47 1.38-1.84m-1.38 1.84c.4-.54.81-1.09 1.38-1.84m0 0c.53-.59 1.07-1.18 1.54-1.71m-1.54 1.71c.59-.66 1.19-1.32 1.54-1.71m0 0c.54-.49 1.08-.97 1.71-1.54m-1.71 1.54c.48-.43.95-.86 1.71-1.54m0 0c.46-.35.92-.7 1.84-1.38m-1.84 1.38c.5-.38 1.01-.76 1.84-1.38m0 0c.52-.32 1.04-.63 1.98-1.2m-1.98 1.2c.72-.44 1.44-.88 1.98-1.2m0 0 2.1-1.01m-2.1 1.01c.84-.4 1.67-.81 2.1-1.01m0 0c.45-.17.91-.33 2.21-.8m-2.21.8c.56-.21 1.12-.41 2.21-.8m0 0c.89-.23 1.79-.46 2.3-.59m-2.3.59c.48-.13.95-.25 2.3-.59m0 0c.51-.08 1.02-.16 2.39-.37m-2.39.37 2.39-.37m0 0c.52-.02 1.03-.05 2.46-.12m-2.46.12c.74-.03 1.48-.07 2.46-.12m0 0 103.34-.27m-103.34.27c30.04-.08 60.08-.16 103.34-.27"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"M517.462 135h-128V7l128 128"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M517.462 135h-128m128 0h-128m0 0V7m0 128V7m0 0 128 128m-128-128 128 128m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})))},saveIcon=e=>React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:e?"var(--color-accent)":"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),React__namespace.createElement("polyline",{points:"17 21 17 13 7 13 7 21"}),React__namespace.createElement("polyline",{points:"7 3 7 8 15 8"})),stringToSVG=e=>(e=e.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]width\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]height\s*=\s*['"][^"']*['"]/g,"").replace("
\n\n
\n',RELEASE_NOTES={Intro:'After each update you\'ll be prompted with the release notes. You can disable this in plugin settings.\n\nI develop this plugin as a hobby, spending my free time doing this. If you find it valuable, then please say THANK YOU or...\n\n
\n',"1.8.9":"\n# Minor QoL improvements\n- When you open a second drawing in the same Excalidraw view (i.e. by navigating a link) and make a change to this drawing, and then press UNDO, the entire drawing disappeared. Redo brought the image back, however, this behavior was frustrating. Not anymore...\n- On iPad\n - when you open the command palette, autozoom resized the drawing. If the Obsidian command palette or some other modal window is shown Excalidraw will not resize the view.\n - when you add a link to the drawing using the Command Palette, sometimes the link was added in a far corner of the drawing outside the current view area. This should be fixed now.","1.8.8":`\n
\n\n
\n\n# New\n- The plugin now includes support for [Perfect Freehand](https://perfect-freehand-example.vercel.app/) pen-options. I've also added a new [Alternative Pens](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Alternative%20Pens.md) script.\n- Embed scene in exported PNG and SVG images [#860](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/860). This means that the export will be a normal PNG or SVG image with the added functionality that if someone loads the image into excalidraw.com it will open as a normal excalidraw file.\n - I've added 2 new Command Palette actions (export PNG, export SVG with embedded scene).\n - If you SHIFT click ${String.fromCharCode(96)} Save as PNG (or SVG)${String.fromCharCode(96)} in the workspace-tab menu, Excalidraw will embed the scene in the export.\n- I updated the [Organic Line](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Organic%20Line.md) script. It has an improved thick-to-thin look and a new thin-to-thick-to-thin line type.\n\n# Fixed\n- Intelligent image width setting [#955](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/955). Before this change, when the embedded image was small, the image would be extended to meet the image width setting in plugin settings. From now on, if the image is smaller than max-width, it will only extend to max-width. You can still set 100% width using custom CSS. See more on that [here](https://github.com/zsviczian/obsidian-excalidraw-plugin#embedded-images).\n\n# New in ExcalidrawAutomate\n- I added the ${String.fromCharCode(96)} plaintext${String.fromCharCode(96)} parameter to ${String.fromCharCode(96)}ExcalidrawAutomate.create${String.fromCharCode(96)} . Using this, you can add some text below the frontmatter but above the ${String.fromCharCode(96)}# Text Elements${String.fromCharCode(96)} section. Use this for example to add metadata to your file. (e.g. I use this in my Daily Quote template to add a Dataview field for the ${String.fromCharCode(96)}Author::${String.fromCharCode(96)} and add the quote with a standard block reference, so I can easily reference it in other files. I also add the ${String.fromCharCode(96)}#quote${String.fromCharCode(96)} tag to the file using this.)\n- The script running in the ScriptEngine now also receives the ${String.fromCharCode(96)}TFile${String.fromCharCode(96)} object for the script itself. You can access this object during execution via the ${String.fromCharCode(96)}utils.scriptFile${String.fromCharCode(96)} variable. \n`,"1.8.7":'\n## New from Excalidraw.com\n- Support shrinking text containers to their original height when text is removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)\n
\n\n
\n\n## Fixed\n- removed the white background when editing arrow-label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)\n- Minor style tweaks\n - for embedding Excalidraw into Obsidian Canvas. e.g. dragging no longer accidentally creates an image copy of the drawing, and\n - style tweaks on the Excalidraw canvas\n\n## New\n- If you set a different text color and sticky note border color, now if you change the border color, the text color will not be changed.\n',"1.8.6":`\n## New from Excalidraw.com:\n- Better default radius for rectangles [#5553](https://github.com/excalidraw/excalidraw/pull/5553). Existing drawings will look unchanged, this applies only to new rectangles.\n![image|200](https://user-images.githubusercontent.com/5153846/206264345-59fd7436-e87b-4bc9-ade8-9e6f6a6fd8c1.png)\n> [!attention]- ExcalidrawAutomate technical details\n> - ${String.fromCharCode(96)}strokeSharpness${String.fromCharCode(96)} is now deprecated\n> - use roundness instead\n> - ${String.fromCharCode(96)}roundness === null${String.fromCharCode(96)} is legacy ${String.fromCharCode(96)}strokeSharpness = "sharp"${String.fromCharCode(96)}\n> - ${String.fromCharCode(96)}roundness = { type: RoundnessType; value?: number }${String.fromCharCode(96)}\n> - type: 1, LEGACY, type:2 PROPORTIONAL_RADIUS, type:3 ADAPTIVE_RADIUS: 3\n> - value:\n> - Radius represented as % of element's largest side (width/height).\n> DEFAULT_PROPORTIONAL_RADIUS = 0.25;\n> - Fixed radius for the ADAPTIVE_RADIUS algorithm. In pixels.\n> DEFAULT_ADAPTIVE_RADIUS = 32;\n\n## New\n- For Obsidian 1.1.6 and above\n - Improved embedding into Obsidian Canvas\n - Improved embedding into Markdown documents\n- Added setting under ${String.fromCharCode(96)}Display/Default mode when opening Excalidraw${String.fromCharCode(96)} to always open the drawing in view mode on Mobile, but in normal mode on desktop. [#939](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/939)\n\n## Fixed\n- Zoom reset tooltip appears twice [#942](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/942)\n- Hid export library from library menu as it does not work due to Obsidian limitations. Use the command palette export library instead.\n- Arrow with label did not get exported and embedded correctly [#941](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/941)\n![image|200](https://user-images.githubusercontent.com/22638687/207845868-b352ddb1-7994-4f13-a0b2-f2e19bd72935.png)\n`,"1.8.4":'\n## New from Excalidraw.com\n- Labels on Arrows!!! [#5723](https://github.com/excalidraw/excalidraw/pull/5723)\n - To add a label press "Enter" or "Double click" on the arrow\n - Use "Cmd/Ctrl+double click" to enter the line editor\n\n
\n\n
\n\n## New\n- **Changed behavior**: In the Obsidian markdown editor clicking an Excalidraw image will not open the image (to avoid accidentally opening the image on a tablet). To open a drawing for editing in Excalidraw double click or long-tap on it. [#920](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/920)\n\n## Fixed \n- Text stroke color is not honored when pasting a HEX color string to an Excalidraw canvas open in an Obsidian popout window [#921](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/921)\n- The new [multi-line >> multi-element paste behavior](https://github.com/excalidraw/excalidraw/pull/5786) introduced in the previous release did not work as expected in Obsidian. Now it does.\n',"1.8.2":`\nIntroducing the [Excalidraw Slideshow Script](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) - available in the script store\n
\n\n
\n\n## Fixed\n- Obsidian tools panel gets misplaced after switching Obsidian workspace tabs\n\n## New in ExcalidrawAutomate\n- changed ${String.fromCharCode(96)}viewToggleFullScreen(forceViewMode: boolean = false): void${String.fromCharCode(96)}: the function will toggle view mode on when going to full screen and view mode off when terminating full screen.\n- new functions\n${String.fromCharCode(96,96,96)}typescript\nsetViewModeEnabled(enabled: boolean):void;\nviewUpdateScene(\n scene: {\n elements?: ExcalidrawElement[];\n appState?: AppState;\n files?: BinaryFileData;\n commitToHistory?: boolean;\n },\n restore: boolean = false,\n ):void;\nviewZoomToElements(\n selectElements: boolean,\n elements: ExcalidrawElement[]\n ):void;\n${String.fromCharCode(96,96,96)}\n\n`,"1.8.1":`\n## New and fixes from Excalidraw.com\n- New text paste behavior. Pasting multiline text will generate separate text elements unless you hold down the shift button while pasting [#5786](https://github.com/excalidraw/excalidraw/pull/5786)\n- line editor fixes [#5927](https://github.com/excalidraw/excalidraw/pull/5927)\n\n## Fixed\n- The Command Palette "Insert link" action now inserts the new link at the top drawing layer, not at the bottom.\n- Updated, hopefully, better organized, Plugin Readme.\n\n## New\n- Second attempt at moving to React 18. This upgrade is required to maintain alignment with the core Excalidraw product and to continue to benefit from Excalidraw.com enhancements.\n- Added options to Plugin Settings\n - to disable autozoom when loading a drawing for the first time [#907](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/907)\n - to modify autosave interval. You can now set an autosave interval for desktop and for mobile [#888](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/888)\n\n## New in ExcalidrawAutomate\n- Published the obsidian_module on the ExcalidrawAutomate object. ${String.fromCharCode(96)}ExcalidrawAutomate.obsidian${String.fromCharCode(96)}. Publishing this object will give script developers increased flexibility and control over script automation.\n`,"1.8.0":'\n
\n\n
\n\n## New\n- Optical Character Recognition (OCR). Introducing the MVP (minimum viable product) release of the integration of [Taskbone](https://taskbone.com) OCR into Excalidraw. See the new scan button on the Obsidian tools panel.\n- New and improved full-screen mode\n - Activate using the Obsidian tools panel, the Obsidian Command Palette, or the Alt+F11 shortcut\n - The ESC key no longer closes full-screen\n - Full-screen mode works properly on iOS as well\n- Improved Icon visibility on the Obsidian tools panel\n- Added 3 additional buttons to the tools panel\n - Force save\n - Open link (useful on Mobile devices). In the case of LaTeX equations, the button opens the equation properties.\n - Open the link in a new pane. In the case of embedded markdown documents, the button opens the embed properties.\n\n## Fixed\n- The [deconstruct selected elements into a new drawing](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Deconstruct%20selected%20elements%20into%20new%20drawing.md) script now also correctly decomposes transcluded text elements.\n',"1.7.30":"\nFix:\n- Forcing the embedded image to always scale to 100% (a feature introduced in [1.7.26](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.7.26)) scaled the embedded excalidraw drawings incorrectly on devices with a pixel ratio of 2 or 3 (e.g. iPads). This is now fixed, however, this fix might retrospectively impact drawings that use this feature. Sorry for that.\n","1.7.29":"\n- This is a big update that accommodates the **UI redesign** on Excalidraw.com [#5780](https://github.com/excalidraw/excalidraw/pull/5780). The change on the surface may seem superficial, however, I had to tweak a number of things to make it work in Obsidian. I hope I found everything that broke and fixed it, if not, I'll try to fix it quickly...\n- This update also comes with changes under the hood that **fix issues with Excalidraw Automate** - paving the way for further scripts, plus some smaller bug fixes.\n- I **reworked text wrapping**. In some cases, text wrapping in SVG exports looked different compared to how the text looked in Excalidraw. This should now be fixed.\n- If you are using the **Experimental Dynamic Styling** of the Excalidraw Toolbar, then I recommend updating your styling script following base on [this](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n","1.7.27":'## New\n- Import SVG drawing as an Excalidraw object. [#679](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/679)\n\n
\n\n
\n\n## Fixed\n- Large drawings freeze on the iPad when opening the file. I implemented a workaround whereby Excalidraw will avoid zoom-to-fit drawings with over 1000 elements. [#863](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/863)\n- Reintroduced copy/paste to the context menu\n',"1.7.26":'## Fixed\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\n- Transcluded text will now exclude ^block-references at end of lines\n- Phantom duplicates of the drawing appear when "zoom to fit" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the "+" & "-" zoom buttons.\n- Latest updates from Excalidarw.com\n - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\n - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\n\n## New - power user features\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.',"1.7.25":`## Fixed\n- Tool buttons did not "stick" the first time you clicked them.\n- Tray (in tray mode) was higher when the help button was visible. The tray in tablet mode was too large and the help button was missing.\n- ExcalidrawAutomate ${String.fromCharCode(96)}getCM(color:TInput): ColorMaster;${String.fromCharCode(96)} function will now properly convert valid [css color names](https://www.w3schools.com/colors/colors_names.asp) to ColorMaster objects.\n- The downloaded script icons in the Excalidraw-Obsidian menu were not always correct\n- The obsidian mobile navigation bar at the bottom overlapped with Excalidraw\n\n## New\n- Created ExcalidrawAutomate hook for styling script when the canvas color changes. See sample [onCanvasColorChangeHook](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c) implementation following the link.\n\n
\n\n
\n\n${String.fromCharCode(96,96,96)}typescript\n /**\n * If set, this callback is triggered whenever the active canvas color changes\n */\n onCanvasColorChangeHook: (\n ea: ExcalidrawAutomate,\n view: ExcalidrawView, //the Excalidraw view \n color: string,\n ) => void = null;\n${String.fromCharCode(96,96,96)}\n`,"1.7.24":`\n# New and improved\n- **Updated Chinese translation**. Thanks, @tswwe!\n- **Improved update for TextElement links**: Until now, when you attached a link to a file to a TextElement using the "Create Link" command, this link did not get updated when the file was renamed or moved. Only links created as markdown links in the TextElement text were updated. Now both approaches work. Keep in mind however, that if you have a link in the TextElemenet text, it will override the link attached to the text element using the create link command. [#566](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/566)\n- **Transclusion filters markdown comments**: Text transclusion in a TextElement using the ${String.fromCharCode(96)}![[file]]${String.fromCharCode(96)} or ${String.fromCharCode(96)}![[file#section]]${String.fromCharCode(96)} format did not filter out markdown comments in the file placed ${String.fromCharCode(96)}%% inside a comment block %%${String.fromCharCode(96)}. Now they do.\n- **Remove leading '>' from trancluded quotes**: Added a new option in settings under **Links and Transclusion** to remove the leading ${String.fromCharCode(96)}> ${String.fromCharCode(96)} characters from quotes you transclude as a text element in your drawing. \n![image](https://user-images.githubusercontent.com/14358394/194755306-6e7bf5f3-4228-44a1-9363-c3241b34865e.png)\n- **Added support for ${String.fromCharCode(96)}webp${String.fromCharCode(96)}, ${String.fromCharCode(96)}bmp${String.fromCharCode(96)}, and ${String.fromCharCode(96)}ico${String.fromCharCode(96)} images**. This extends the already supported formats (${String.fromCharCode(96)}jpg${String.fromCharCode(96)}, ${String.fromCharCode(96)}gif${String.fromCharCode(96)}, ${String.fromCharCode(96)}png${String.fromCharCode(96)}, ${String.fromCharCode(96)}svg${String.fromCharCode(96)}).\n- **Added command palette action to reset images to original size**. Select a single image or embedded Excalidraw drawing on your canvas and choose ${String.fromCharCode(96)}Set selected image element size to 100% of original${String.fromCharCode(96)} from the command palette. This function is especially helpful when you combine atomic drawings on a single canvas, keeping each atomic piece in its original excalidraw file (i.e. the way I create [book on a page summaries](https://www.youtube.com/playlist?list=PL6mqgtMZ4NP1-mbCYc3T7mr-unmsIXpEG))\n- The ${String.fromCharCode(96)}async getOriginalImageSize(imageElement: ExcalidrawImageElement): Promise<{width: number; height: number}>${String.fromCharCode(96)} function is also avaiable via ExcalidrawAutomate. You may use this function to resize images to custom scales (e.g. 50% size, or to fit a certain bounding rectangle).\n\n# Fixed\n- **Upgraded perfect freehand package to resolve unwanted dots on end of lines** [#5727](https://github.com/excalidraw/excalidraw/pull/5727)\n- **Pinch zoom in View mode opens images** resulting in a very annoying behavior [#837](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/837)\n- **Embedded files** such as transcluded markdown documents and images **did not honor the Obsidian "New Link Format" setting** (shortest path, relative path, absolute path). [#829](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/829)\n- **Fixed error with dataview queries involving Excalidraw files**: In case you created a task on an Excalidraw canvas (${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}) by typing ${String.fromCharCode(96)}- [ ] Task [[owner]] #tag${String.fromCharCode(96)}, and then you created a Dataview tasklist in another document (${String.fromCharCode(96)}docB.md${String.fromCharCode(96)}) such that the query criteria matched the task in ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}, then the task from ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)} only appeared as an empty line when viewing ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)}. If you now embedded ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)} into a third markdown document (${String.fromCharCode(96)}docC.md${String.fromCharCode(96)}), then instead of the contents of ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)} Obsidian rendered ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}. [#835](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/835)\n`,"1.7.22":"\n# Fixed\n- Text size in sticky notes increased when opening the drawing and when editing a sticky note [#824](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/824)\n- ToDo rendering did not work properly when there were parsed links in the text\n- Horizontal text alignment in sticky notes did not honor text alignment setting when resizing text. The text was always aligned center even when text alignment was left or right. [#5720](https://github.com/excalidraw/excalidraw/issues/5720)\n","1.7.21":`\n# New from Excalidraw.com\n- Image-mirroring in export preview and in exported SVG [#5700](https://github.com/excalidraw/excalidraw/pull/5700), [#811](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/811), [#617](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/617)\n\n# New \n- Ctrl+s will force-save your drawing and update all your transclusions\n- Added setting to parse ${String.fromCharCode(96)}- [ ] ${String.fromCharCode(96)} and ${String.fromCharCode(96)}- [x] ${String.fromCharCode(96)} todo items. Parsing is disabled by default. This feature can be found under "Links and Transclusions" in Plugin Settings. [#819](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/819)\n\n![image](https://user-images.githubusercontent.com/14358394/192145020-94bdd115-d24f-47c7-86fe-1417c53980c4.png)\n\n\n\n\n- Added new scripts to the script library\n - [Rename Image](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Rename%20Image.md)\n - [Text Arch](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Text%20Arch.md)\n\n\n\n\n# Fixed\n- Fixed toast message to display script name on press and hold on mobile and iPad.\n- Fixed save error when the embedded image file is not found (i.e. it was moved, renamed, or deleted)\n\n`,"1.7.20":'\n# New from Excalidraw.com\n- support segment midpoints in line editor [#5641](https://github.com/excalidraw/excalidraw/pull/5641)\n
\n\n
\n\n# Fixed\n- When editing a line or arrow and selecting a tool on the toolbar, the tool jumps back to the selection tool and you need to click again to select the tool [#5703](https://github.com/excalidraw/excalidraw/issues/5703)\n- Minor improvement of autosave, hopefully decreasing occasional lagging\n',"1.7.19":`\n# QoL improvements\n- Reintroduced the help button. I also added the help button to the Tray (in Tray Mode) and moved help to the canvas action panel (in non-TrayMode) because in Obsidian 0.16.0 the status bar hides the help icon.\n- Resetting the canvas with the "Reset Canvas" button will now preserve your custom color palette.\n- I updated the [Set background color of unlclosed line object](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20background%20color%20of%20unclosed%20line%20object%20by%20adding%20a%20shadow%20clone.md) script. The script will now add background color to open freedraw objects as well. You no longer need to convert freedraw objects to lines before setting the background color. Check the Script Engine library to download the update.\n\n# New in Excalidraw Automate\n- I added the [ColorMaster](https://github.com/lbragile/ColorMaster#readme) library to ExcalidrawAutomate. You can get a CM object by calling ${String.fromCharCode(96)}ExcalidrawAutomate.getCM()${String.fromCharCode(96)}. Color master introduces many new ways to manipulate colors from script. I will publish scripts that make use of this new functionality including supporting videos on my YouTube channel in the coming days.\n`,"1.7.18":"\n## Critical fix\n- duplicating text elements, adding text elements from the library, and pasting excalidraw text elements results in a corrupted file!!","1.7.17":`\n## Fixed\n- Block transclusions sometimes got lost when switching between RAW mode and PREVIEW mode. [#769](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/769)\n\n## New\n- Added feature to disable "new Excalidraw version" notification [#770](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/770)\n- Added option to export both light- and dark-themed images at the same time. If this is enabled Excalidraw will create two files "filename.dark.png" and "filename.light.png" (or .svg depending on your other settings). See practical use case here: [Aadam's Notes](https://notes.aadam.dev/SBYNtPHqsTW9Ck1Kuoxsu/)\n- Added custom export padding for PNG images. Use the frontmatter key ${String.fromCharCode(96)}excalidraw-export-padding${String.fromCharCode(96)} to set the padding at a file level, or set padding for all your files in plugin settings. The new feature replaces the old "SVG Padding" option and applies to both SVG and PNG exports.\n\n## ExcalidrawAutomate\n- Added ${String.fromCharCode(96)}padding${String.fromCharCode(96)} to the createPNG function call.\n${String.fromCharCode(96,96,96)}typescript\nasync createPNG(\n templatePath?: string,\n scale: number = 1,\n exportSettings?: ExportSettings,\n loader?: EmbeddedFilesLoader,\n theme?: string,\n padding?: number,\n)\n${String.fromCharCode(96,96,96)}\n`,"1.7.16":"\n## Fixed\n- Excalidraw canvas is empty after saving the drawing and re-opening it at a later time. If you accidentally paste Excalidraw elements from the clipboard as the contents of a text element, in certain situations this can corrupt the Excalidraw file and as a result, Excalidraw will load an empty-looking drawing the next time. Changing to markdown view, these files can be repaired, however, to avoid accidental data loss, I have prevented pasting of excalidraw clipboard contents as text elements. [#768](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/768)\n\n## New\n- Add zoom % display in tray-mode [737](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/737)\n","1.7.15":"\n## Fixed\n- Canvas turns white when adding point for curved line [#760](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/760), [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738), [#5602](https://github.com/excalidraw/excalidraw/issues/5602)\n","1.7.14":`\n
\n\n
\n\n## New\n- The ${String.fromCharCode(96)}Copy markdown link for selected element to clipboard${String.fromCharCode(96)} action in the Obsidian menu is now more intelligent. If multiple elements are selected it will copy the Element Reference for the largest element. \n- When referencing an element in a link pointing to an Excalidraw file using the elementId or the section header as the block reference e.g. ${String.fromCharCode(96)}[[file#^elementID]]${String.fromCharCode(96)}, you can now add the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#^group=elementID]]${String.fromCharCode(96)} and the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#area=Section heading]]${String.fromCharCode(96)}.\n - If the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix is found, Excalidraw will select the group of elements in the same group as the element referenced by the elementID or heading section.\n - If the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix is found, excalidraw will insert a cutout of the image around the referenced element.\n - The ${String.fromCharCode(96)}area=${String.fromCharCode(96)} selector is not supported when embedding Excalidraw as PNG into your markdown documents.\n- I added "Toggle left-handed mode" to the Command Palette. The action is only visible if tray-mode is enabled. It will move the tray from left to right and back. [749](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/749)\n\n## Fixed\n- Zooming with CTRL+Wheel will no longer trigger hover preview.\n- When editing text in a text element CTRL+C will not launch the hover preview in case the mouse pointer is over the text element being edited. Hover preview will only show if the element is not in editing mode.\n- ExcalidrawAutomate did not reliably save changes. This caused issues for example in the "Add link to an existing file and open" script. [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n- Create a new folder not working when clicking on a link in Erxcalidraw that points to a file that is in a folder that does not yet exist. [741](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/741)\n- Downgraded to React 17 due to various stability issues, including [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738) and [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n\n## New in Excalidraw Automate\n- I added two new Excalidraw Automate functions\n${String.fromCharCode(96,96,96)}typescript\n/**\n * Gets the groupId for the group that contains all the elements, or null if such a group does not exist\n * @param elements \n * @returns null or the groupId\n*/\ngetCommonGroupForElements(elements: ExcalidrawElement[]): string;\n\n/**\n * Gets all the elements from elements[] that share one or more groupIds with element.\n * @param element \n * @param elements - typically all the non-deleted elements in the scene \n * @returns \n*/\ngetElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}`,"1.7.13":`\n## Fix from Excalidraw.com\n- Resize multiple elements from center ([#5560](https://github.com/excalidraw/excalidraw/pull/5560))\n\n## Obsidian 0.16.0 compatibility (getting ready, because 0.16.0 will be available to insiders soon)\n- ${String.fromCharCode(96)}Install or update Excalidraw Scripts${String.fromCharCode(96)} was only available via the page header button. Because the page header is hidden by default, the install script action is now available through the pane menu and through the command palette as well.\n- ${String.fromCharCode(96)}Open selected text as link${String.fromCharCode(96)} page header button is now also available via the pane menu\n- ${String.fromCharCode(96)}Open in Adjacent Pane${String.fromCharCode(96)} and ${String.fromCharCode(96)}Open in Main Workspace${String.fromCharCode(96)} Excalidraw plugin settings is fixed\n`,"1.7.12":`\n## New from Excalidraw.com:\n- Showing a mid-point for lines and arrows. By touching the mid-point you can easily add an additional point to a two-point line. This is especially helpful when working on a tablet with touch input. ([#5534](https://github.com/excalidraw/excalidraw/pull/5534))\n- Lock angle when editing a line or an arrow with SHIFT pressed. Pressing SHIFT will restrict the edited point to snap to certain discrete angles. ([#5527](https://github.com/excalidraw/excalidraw/pull/5527))\n\n## Fixed:\n- Clicking Obsidian search-results pointing to an element on the canvas works again ([#734](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/734))\n- The feature to allow resizing and rotation of lines and arrows consisting of 3 or more points by showing the bounding box when selected is back ([#5554](https://github.com/excalidraw/excalidraw/pull/5554))\n\n## New\n- You can now use the following frontmatter key to allow/prevent automatic export of PNG/SVG images at a file level. This frontmatter will override export settings for the given file. ([#732](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/732)\n${String.fromCharCode(96)}excalidraw-autoexport: none|both|svg|png${String.fromCharCode(96)}\n`,"1.7.11":`\n## Fixed\n- Markdown files embed into the Excalidraw canvas crashed when the embedded markdown file included a nested Markdown embed with a block reference (i.e. the markdown document you are dropping into Excalidraw included a quote you referenced from another file using a ${String.fromCharCode(96)}[[other-file#^blockref]]${String.fromCharCode(96)} block or section reference. \n- Horizontal flipping of arrows and lines broke in 1.7.10. ([#726](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/726))\n`,"1.7.10":'\n## New from Excalidraw.com\n- Improved handling of arrows and lines. ([#5501](https://github.com/excalidraw/excalidraw/pull/5501))\n\n## Fixed\n- When opening a document in view-mode or zen-mode the panel buttons no longer flash up for a moment before switching to the desired mode. ([#479](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/479))\n- The "blinding white screen" no longer flashes up while loading the scene if the scene is dark ([#241](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/241))\n\n## Under the hood\n- Finalized migration to React 18 (no longer showing an error about React 17 compatibility mode in console log)\n',"1.7.9":'\n## New features and fixes from Excalidraw.com:\n- The right-click context menu is now scrollable on smaller screens ([#4030](https://github.com/excalidraw/excalidraw/pull/4030), [#5520](https://github.com/excalidraw/excalidraw/pull/5520))\n- Holding down the shift key while rotating an object will rotate it at discrete angles. Rotation is continuous without the SHIFT key. ([#5500](https://github.com/excalidraw/excalidraw/pull/5500))\n- Improved cursor alignment when resizing an element proportionally (maintain aspect ratio) by holding SHIFT during resizing. ([#5513](https://github.com/excalidraw/excalidraw/pull/5515))\n- Improved freedraw performance during editing (now has proper canvas caching), and no more blurry freedraw shapes when exporting on a higher scale. ([#5481](https://github.com/excalidraw/excalidraw/pull/5481))\n- Sidebar stencil library now correctly scrolls vertically ([#5459](https://github.com/excalidraw/excalidraw/pull/5459))\n\n## New in Obsidian:\n- Fullscreen mode on iPad. When there are multiple work panes open, clicking the fullscreen action in the Excalidraw Obsidian menu will hide the other work panes and make Excalidraw fullscreen.\n\n## Fixes in Obsidian:\n- Drag&Drop an image from a web browser into Excalidraw ([#697](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/697))\n- On Obsidian Mobile 1.3.0, when the drawing included an embedded image, switching from markdown-view to Excalidraw-view caused the drawing to disappear (it had to be recovered from backup or synchronization history). ([#715](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/715))\n- When working on a mobile device (tablet and phone) and using two work panes (one for drawing and the other for editing a markdown document) if you switched focus from the drawing to the markdown document auto-zoom changed the zoom level of the drawing. ([#723](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/723)), ([#705](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/705))\n- Actions on the Command Palette to create a new drawing in a new pane or reusing an existing adjacent pane; on the main workspace or in the Hover Editor or Popout window, were not working well. See related settings in plugin settings under "Links and transclusions" ([#718](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/718))\n- There was a problem with links with section references when the header contained space characters ([#704](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/704))\n- I added additional controls to avoid the fantom warnings about a problem with saving the Excalidraw file. Hopefully, from now on, you\'ll see this error less frequently ([#701](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/701))\n',"1.7.8":'\n# Optimized for Obsidian 0.15.5\n- I reworked how the plugin treats the "More options" menu because the old approach was interfering with Obsidian\n- Did thorough testing of handling of work panes on link click. There are two settings (open in the adjacent pane, and open in the main workspace), and three broad scenarios (Excalidraw in a work pane in the main Obsidian window, Excalidraw in a hover editor, and Excalidraw in an Obsidian popout window). All should work correctly now.\n',"1.7.7":`\n# New\n- Optimized for Obsidian 0.15.4\n- On a desktop, you can now use the META key when clicking on a link and it will open the link in a new popout Window.\n- ([#685](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/685)) Markdown embeds will now display correctly in Excalidraw even if they include photos and recursive markdown embeds. Unfortunately due to the limitations of Safari the inversion of colors on iPads in dark mode will not work well.\nSee an 18 second long demo video [here](https://user-images.githubusercontent.com/14358394/177213263-2a7ef1ca-0614-4190-8955-e830ca6b424b.mp4).\n\n\n# Fixed\n- ([#683](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/683)) Copy/Paste Markdown embeds to create another instance of the embed, thus you can reference different sections of the document in your drawing (something I broke in 1.7.6)\n- ([#684](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/684)) Transclusions incorrectly did not pick up subsections of a section. To understand this change, imagine for example the following document:\n${String.fromCharCode(96,96,96)}markdown\n# A\nabc\n# B\nxyz\n## b1\n123\n## b2\n456\n# C\n${String.fromCharCode(96,96,96)}\nWhen you transclude ${String.fromCharCode(96)}![[document#B]]${String.fromCharCode(96)} you expect the following result\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n\nb1\n123\n\nb2\n456\n${String.fromCharCode(96,96,96)}\nUntil this fix you only got\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n${String.fromCharCode(96,96,96)}`,"1.7.6":`\nThis release is the same as 1.7.5 except for two minor fixes\n- a fix for ExcaliBrain, becuase 1.7.5 broke ExcaliBrain.\n- I left out the release note from 1.7.5.\n\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.5":`\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.4":"\n- Obsidian 0.15.3 support dragging and dropping work panes between Obsidian windows.\n- Addressed Obsidian changes affecting the more-options menu.\n- Addressed incompatibility with Obsidian Mobile 1.2.2.\n","1.7.3":"\nObsidian 0.15.3 support for dragging and dropping work panes between Obsidian windows.\n","1.7.2":"\nDue to some of the changes to the code, I highly recommend restarting Obsidian after installing this update to Excalidraw.\n\n# Fixed\n- Stability improvements\n- Opening links in new panes and creating new drawings from the file explorer works properly again\n\n# New feature\n- Two new command palette actions:\n - Create a new drawing - IN A POPOUT WINDOW\n - Create a new drawing - IN A POPOUT WINDOW - and embed into active document\n![image|600](https://user-images.githubusercontent.com/14358394/175137800-88789f5d-f8e8-4371-a356-84f443aa6a50.png)\n- Added setting to prefer opening the link in the popout window or in the main workspace.\n![image|800](https://user-images.githubusercontent.com/14358394/175076326-1c8eee53-e512-4025-aedb-07881a732c69.png)\n","1.7.1":"\nSupport for Obsidian 0.15.0 popout windows. While there are no new features (apart from the popout window support) under the hood there were some major changes required to make this happen.\n","1.7.0":"\nThis is the first test version of Excalidraw Obsidian supporting Obsidian 0.15.0 popout windows. The current technical solution is not really sustainable, it's more of a working concept. I don't expect any real big issues with this version - on the contrary, this works much better with Obsidian 0.15.0 popout windows, but some of the features aren't working as expected in the Obsidian popouts yet. Also as a consequence of Obsidian 0.15.0 compatibility, multiple hover previews are no longer supported.\n","1.6.34":"\nWith 0.15.1 Obsidian is implementing some exciting, but significant changes to how windows are managed. I need to make some heavy/invasive changes to Excalidraw to adapt. The next version of the Excalidraw Plugin will require Obsidian 0.15.1 or newer. If you are not signed up for Obsidian Insider Builds, you will need to wait few weeks until the new Obsidian version will be made public.\n\n# Fixed\n- Error saving when the attachments folder exists but with a different letter case (i.e. ATTACHMENTS instead of attachments) [658](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/658). I added more error tolerance. As a general rule, however, I recommend treating file paths as case-sensitive as some platforms like iOS or LINUX have case-sensitive filenames, and synchronizing your Vault to these platforms will cause you headaches in the future.\n- Text detached from the container if you immediately clicked the text-align buttons on the properties pane while still editing the text in the container for the very first time. [#657](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/657).\n- Can't add text to the second container if the first container has text and the second container is centered around the first one. [#5300](https://github.com/excalidraw/excalidraw/issues/5300)\n","1.6.33":`\n# Fixed\n- Under some special circumstances when you embedded a drawing (guest) into another drawing (host), the host did not update when you modified the guest, until you closed Excalidraw completely and reopened the host. [#637](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/637)\n\n# New\n- ExcalidrawAutomate ${String.fromCharCode(96)}addLabelToLine${String.fromCharCode(96)} adds a text label to a line or arrow. Currently this function only works with simple straight 2-point (start & end) lines.\n${String.fromCharCode(96,96,96)}typescript\naddLabelToLine(lineId: string, label: string): string\n${String.fromCharCode(96,96,96)}\n- ExcalidrawAutomate ${String.fromCharCode(96)}ConnectObjects${String.fromCharCode(96)} now returns the ID of the arrow that was created.`,"1.6.32":"\n## Fixed\n- Filenames of embedded images and markdown documents did not get updated if the drawing was open in a work-pane while you changed the filename of the embedded file (image or markdown document) [632](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/632).\n- When you created a new text element and immediately dragged it, sometimes autosave interrupted the drag action and Excalidraw dropped the element you were dragging [630](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/630)\n- In some edge cases when you had the drawing open on your desktop and you also opened the same image on your tablet, Sync seemed to work in the background but the changes did not appear on the desktop until you closed and opened the drawing again. [629](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/629)\n- LaTeX support: Excalidraw must download a javascript library from one of the hosting sites for MathJax tex2svg. It seems that some people do not have access to the URL recommended in the first place by [MathJax](https://docs.mathjax.org/en/latest/web/start.html). If LaTeX formulas do not render correctly in Excalidraw, try changing the source server under Compatibility Settings in Excalidraw Plugin Settings. [628](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/628)","1.6.31":"\nMinor update:\n\n## Fixes\n- Color picker hotkeys were not working. They are working again [627](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/627)\n- I updated MathJax (LaTeX) to the newest (3.2.1) release.","1.6.30":"\n## Fixed\n- The load stencil library button stopped working after 1.6.29 due to an error in the core Excalidraw package. It is now fixed. [#625](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/625).\n- On iPad (probably other Obsidian mobile devices as well) after opening the command palette the positioning of the pointer was off. From now on, the pointer is automatically re-calibrated every 5 seconds.\n- I improved shared-vault collaboration sync. If the open file has not been saved for the last 5 minutes (i.e. you are not working on the drawing actively), and a newer remote version of the file is received via sync, then the remote file will simply overwrite the local file (i.e. the behavior of Excalidraw Obsidian prior to implementing Shared (Multiplayer) Vault Synchronization support in 1.6.29). This solution will support active collaboration when parties participating are actively editing the drawing, but also caters to the scenario when you open a drawing on one device (e.g. your desktop) and once you are finished editing you do not close the drawing, but simply put your PC to sleep... then later you edit the same drawing on your tablet. When you turn your desktop PC on the next time, the changes you've made on your tablet will be synchronized by Obsidian sync. In this case the changes from your tablet should be honored. If you have not edited the open drawing for more then 5 minutes (like in this scenario) there is no value in running the file comparison between the local version and the received one. This approach reduces the probability of running into sync conflicts.","1.6.29":"\n## New\n- I implemented sync support inspired by the new [Obsidian Multiplayer Sync](https://youtu.be/ZyCPhbd51eo) feature (available in insider build v0.14.10). \n - To manage expectations, this is not real-time collaboration like on Excalidraw.com. Synchronization is delayed by the frequency of the autosave timer (every 10 secs) and the speed of Obsidian sync. Also if a file has conflicting versions, Obsidian sync may delay the delivery of the changed file.\n - Even if you are not using multiplayer Obsidian Vaults, you may benefit from the improved synchronization, for example when using the freedraw tool on your tablet or phone, and in parallel editing the same drawing (e.g. typing text) on your desktop. I frequently do this in a mind-mapping scenario.\n - If the same Excalidraw sketch is open on multiple devices then Excalidraw will try to merge changes into the open drawing, thus parallel modifications on different devices are possible. If the same element is edited by multiple parties at the same time, then the foreign (received) version will be honored and the local changes lost. \n\n## Fixed:\n- Default embed width setting stopped working. [#622](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/622)\n- The link tooltip gets stuck on screen after Excalidraw closes [#621](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/621)\n- Layout error when using the Workspaces core plugin. [#28](https://github.com/zsviczian/excalibrain/issues/28)","1.6.28":'\n## New\n- When dropping a link from a DataView query into Excalidraw the link will honor your "New link format" preferences in Obsidian. It will add the "shortest path when possible", if that is your setting. If the link includes a block or section reference, then the link will automatically include an alias, such that only the filename is displayed (shortest path possible allowing) [#610](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/610)\n- If Excalidraw is in a Hover Editor and you open a link in another pane by CTRL+SHIFT+Click then the new page will open in the main workspace, and not in a split pane in the hover editor.\n\n## Fixed\n- New text elements get de-selected after auto-save [#609](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/609)\n- Update opacity of bound text when the opacity of the container is updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)\n- ExcalidrawAutomate: openFileInNewOrAdjacentLeaf() function. This also caused an error when clicking a link in Excalidraw in a hover window, when there were no leaves in the main workspace view.',"1.6.27":"\n## New Features\n- While these new features are benefitial for all Excalidraw Automation projects, the current changes are mainly in support of the [ExcaliBrain](https://youtu.be/O2s-h5VKCas) integration. See detailed [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.27) on GitHub.\n","1.6.26":`\n## Fixed\n- Dragging multiple files onto the canvas will now correctly [#589](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/589)\n - add multiple links\n - or if you hold the CTRL/(SHIFT on Mac) while dropping the files, then adding multiple images\n- Dropped images and links were not selectable with the selection tool until the file was saved. This is now fixed.\n- Display the linked block/section on link-hover instead of the full page. [#597](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/597)\n- Hover preview without CTRL/CMD works again. Requires configuration in plugin settings. [#595](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/595)\n- If you embed the same markdown document into a drawing multiple times, you can now display different sections of the document in each embedded object. [#601](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/601).\n- If you make a copy of an equation and edit this copy, the original equation will remain unchanged [#593](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/593)\n\n## New Features\n- When you drag files from Dataview-results onto the canvas the obsidian:// urls will be converted into wiki links.[#599](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/599)\n- I added one more frontmatter key: ${String.fromCharCode(96)}excalidraw-linkbutton-opacity: ${String.fromCharCode(96)} This sets the opacity of the blue link-button in the top right corner of the element, overriding the respective setting in plugin settings. Valid values are numbers between 0 and 1, where 0 means the button is fully transparent.\n\n## New Excalidraw Automate Features\n- As part of building the new [ExcaliBrain](https://youtu.be/O2s-h5VKCas) plugin, I've added a number of integration features. See the GitHub [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.26) for details.\n`,"1.6.25":`\n## Fixed\n- Pinch-zoom in view mode was broken ([#5001](https://github.com/excalidraw/excalidraw/pull/5001))\n- The add image button on iPad was not working ([#5038](https://github.com/excalidraw/excalidraw/pull/5038) & [#584](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/584))\n\n## New Features\n- If Excalidraw is open in a [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) when opening a link in a new pane Excalidraw will now open the link in the main workspace and not by splitting the view inside the hover-editor. \n- Excalidraw ScriptEngine settings\n - Script Engine settings now render HTML descriptions\n - If the ${String.fromCharCode(96)}height${String.fromCharCode(96)} property of a text setting is set, the corresponding text input field will be rendered as a textArea with the specified height.\n`,"1.6.24":"\n## Fixed\n- Link fixes:\n - Shift+Click on an element link (i.e. a link attached to a rectangle, ellipse, etc) did not open the link in a new leaf.\n - Clicking a link and opening it in a new leaf will now make the new leaf active and focused after the click.\n- Pointer calibration:\n - Opening an Excalidraw drawing with the [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) and dragging the editor to another location corrupted the calibration of the pointer in Excalidraw. Similarly, when rearranging workspace panes by dragging, Excalidraw lost pointer calibration.\n\n## New Features\n### From Excalidraw.com\n- Element locking: The lock and unlock action is in the context menu.\n\n### Plugin\n- Any element that has a link, ctrl/cmd+clicking anywhere on the object will trigger the link action. You no longer have to go to the link icon. ([#541](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/541#issuecomment-1075578365))\n","1.6.23":`\n## Fixed:\n- I have received some user feedback about cases where the text separated from the sticky note. This version comes with a cleanup algorithm that will try to automatically resolve these issues.\n- Autosave did not notice changes in a very obscure case, when you opened a drawing, resized an element, and without deselecting the element you immediately closed the drawing. ([565](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/565))\n- CTRL+Enter to create a task did not work in hover-editor when opened from Excalidraw. Now it does! Thanks @pjeby! ([567](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/567))\n\n## New Features\n- If you have the [Obsidian-Latex](https://github.com/xldenis/obsidian-latex) plugin installed, from now Excalidraw will also process the ${String.fromCharCode(96)}preambles.sty${String.fromCharCode(96)} file. ( [563](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/563))\n- I added a new setting ${String.fromCharCode(96)}Embed & Export >> If found, use the already exported image for preview${String.fromCharCode(96)}. This setting works in conjunction with the ${String.fromCharCode(96)}Auto-export SVG/PNG${String.fromCharCode(96)} settings. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See release notes for a [demo video](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.22).\n`,"1.6.22":'\n## Fixed:\n- "Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document" did not work as intended when an Excalidraw pane was already open. [#559](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/559)\n- [Obsidian-hover-editor](https://github.com/nothingislost/obsidian-hover-editor) related improvements [#555](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/555):\n - hovering triggered many hover preview windows in quick succession, and in some cases raised dozens of errors in the Developer Console\n - hover-editors were not visible in Excalidraw fullscreen mode\n\n## Minor new features:\n- Activating the eraser with key "e" will toggle the active tool and back. So for example if you are drawing a freedraw shape, you can press "e" to delete a few strokes, then press "e" again to continue drawing. On desktop PCs many styluses allow you to configure the pen button to trigger keypress "e". \n- New setting to enable penMode by default.\n- I increased the file size limit for images you paste into Excalidraw from 2MB to 20MB. You should however avoid very large images as they will impact the overall performance of the canvas. ([#557](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/557))\n',"1.6.21":`\nBefore I move on to implementing further features, I spent this week with further stabilizing and debugging the plugin. Hopefully this will result in a smoother, better experince for you all.\n\n## Fixed\n- Links in drawings (e.g. text elements or embedded images) were sometimes not updating when the source file was moved or renamed in your Vault. The issue happend when you had the drawing and the linked file open in panes next to each other. This has led to broken links. ([#546](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/546))\n- To remove complexity and potential error, I have hidden the autosave settings. From now, autosave is now always enabled. Excalidraw will attempt to save your drawing every 10 seconds, or if you are actively engaged in drawing a shape at that very moment (e.g. you are busy with a freedraw line), then autosave will save the drawing at the earliest next opportunity. I imlemented further triggers to save the drawing when there are changes in the drawing and you click outside the drawing canvas. There was a rare error involving text elements, that when happened blocked saving of the file. This error is now properly handeled. Also from now, you will receive a warning message if for any reason save encountered problems. \n- If you have two heading sections in your drawing, e.g. ${String.fromCharCode(96)}# Section abc${String.fromCharCode(96)} and ${String.fromCharCode(96)}# Section abc def${String.fromCharCode(96)}, then referencing ${String.fromCharCode(96)}[[#Section abc]]${String.fromCharCode(96)} in a link will highlight both text elements when clicking the link. These section references now work as expected. ([#530](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/530))`,"1.6.20":`\n
\n\n
\n\n## Fixed\n- ${String.fromCharCode(96)}ExcalidrawAutomate.create()${String.fromCharCode(96)} threw an error [539](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/539)\n\n## New Features\n### From excalidraw.com\n- Bind/unbind text to/from container [4935](https://github.com/excalidraw/excalidraw/pull/4935)\n\n### Plugin\nFrontmatter tags to customize image export at a file level [519](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/519). If these keys are present they will override the default excalidraw embed and export settings.\n- ${String.fromCharCode(96)}excalidraw-export-transparent: true${String.fromCharCode(96)}\n - true == Transparent / false == with background. \n- ${String.fromCharCode(96)}excalidraw-export-dark${String.fromCharCode(96)}\n - true == Dark mode / false == light mode.\n- ${String.fromCharCode(96)}excalidraw-export-svgpadding${String.fromCharCode(96)}\n - This only affects export to SVG. Specify the export padding for the image\n- ${String.fromCharCode(96)}excalidraw-export-pngscale${String.fromCharCode(96)}\n - This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.\n`,"1.6.19":"\nThis is a minor update fixing left-handed mode on iOS, and deploying improvements to the new Excalidraw Eraser.\n","1.6.18":`\n
\n\n
\n\n## Fixed\n- Modifying properties of a text element in tray mode. [496](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/496)\n- Friendly page aliases with iframely should work more reliably now.\n- I further improved resilience of loading from a damaged Excalidraw.md file.\n\n## New Features\n### From excalidraw.com\n- Added Eraser [4887](https://github.com/excalidraw/excalidraw/pull/4887)\n\n### Plugin\n- New setting for default transcluded-text line-wrap length. This is the default value for "wrapAt" in ${String.fromCharCode(96)}![[file#^block]]{wrapAt}${String.fromCharCode(96)}. Wrapping text using this feature will insert linebreaks in the transcluded text. An alternative approach is to transclude text inside sticky notes, in which case Excalidraw will automatically take care of text wrapping depending on the sticky note's width. [228](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/228)\n- New command palette action to toggle fullscreen mode, so you can assign a hotkey.\n- I added basic support for left-handed users. Enable it in plugin settings under the "Display" section. Currently, only affects the position of the tray in tray-mode. [510](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/510)\n- More flexible filename settings. ⚠ Due to the change, current settings may behave slightly differently compared to before. ⚠ [470](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/470)\n`,"1.6.17":`\n
\n\n
\n\n## Fixed\n- Freedraw shape's background color was missing in the SVG export. [#443](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/443)\n- In rare cases, when you only changed the background color of the drawing or edited the dimensions of an embedded markdown document, or changed an existing LaTeX formula, and then moved to another document in the vault, these changes did not get saved. [#503](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/503)\n- I resolved an Excalidraw Automate glitch with word wrapping in containers. EA generated containers with fixed line breaks. The same error also affected the conversion of drawings from the "legacy" Excalidraw.com file format.\n- When you allow/disable autosave in settings, this change will immediately take effect for all open Excalidraw workspace leaves. Until now autosave was activated only after you closed and reopened the Excalidraw view. [#502](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/502)\n- When you create a text element containing a ${String.fromCharCode(96,96,96)}[[markdown link]]${String.fromCharCode(96,96,96)} in raw mode, the new link was parsed nonetheless, and sometimes the link disappeared, leaving only the parsed text without the actual link. Creating links in raw-mode now works correctly.\n\n## New Features\n- The most recent 5 custom colors from the canvas are now added as color options to the element stroke and element background palette. [#4843](https://github.com/excalidraw/excalidraw/pull/4843)\n- Vertical text alignment for text in sticky notes [#4852](https://github.com/excalidraw/excalidraw/pull/4852)\n- Markdown embeds into Excalidraw now receive default styling, including that of tables, blockquotes, and code blocks. I also added a new setting and corresponding frontmatter-key to set the border-color for the embedded markdown document. You can override plugin settings at the document level by adding ${String.fromCharCode(96,96,96)}excalidraw-border-color: steelblue${String.fromCharCode(96,96,96)} to the markdown document you want to embed into your drawing. Valid values are css-color-name|#HEXcolor|any-other-html-standard-format.\n- In Obsidian search, when the text you were searching for is found in an Excalidraw document, clicking the link in search-results will open the drawing with the matching text element selected and zoomed.\n- Excalidraw now supports linking to text elements on the canvas and linking to non-text objects. \n1) You can reference text headings just the same as markdown headings in a document\ni.e. you have a text element that includes a valid markdown heading:\n${String.fromCharCode(96,96,96)}markdown\n# My Heading\ndetails...\n${String.fromCharCode(96,96,96)}\nor \n${String.fromCharCode(96,96,96)}markdown\ntext element text\n# my reference\n${String.fromCharCode(96,96,96)}\nYou can reference these like this respectively: ${String.fromCharCode(96,96,96)}[[#My Heading|display alias]]${String.fromCharCode(96,96,96)} and ${String.fromCharCode(96,96,96)}[[#my reference|alias]]${String.fromCharCode(96,96,96)}\n\n![image](https://user-images.githubusercontent.com/14358394/156890231-5a23bcb3-40a4-4ad7-b366-74c328620159.png)\n\n2) You can also reference element ids similar to block references\n- Links take this form ${String.fromCharCode(96,96,96)}[[#^elementID|alias]]${String.fromCharCode(96,96,96)}\n- Linking is supported by a new action on the Obsidian Tools Panel\n![image](https://user-images.githubusercontent.com/14358394/156894011-6442c3d6-aaff-43a8-bd77-513e450484ba.png)\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.17)\n`,"1.6.16":'\n
\n\n
\n\n\n## Fixed\n- CMD+Drag from the Obsidian File Manager does not work on Mac. You can now use SHIFT+Drag to embed an image or markdown document into a scene. ([#468](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/468))\n- Excalidraw Compressed JSON is now cut to smaller chunks (64 characters per paragraph, instead of the earlier 1024 characters). This should address search performance issues. ([#484](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/484))\n\n## New Features\n- I added the Obsidian Tools Panel\n - Click the Obsidian button to access the panel.\n - The tools panel contains key plugin commands and user / downloaded Excalidraw scripts.\n - Drag the panel with the handle at the top. Single click on the top to collapse the panel.\n - On Mobile press and hold the drag handle before dragging, to avoid activating the Obsidian slide in menus.\n - On Mobile long touch individual buttons on the panel to access tooltips.\n - Reinstall Excalidraw scripts to get the icons.\n- If you hold down SHIFT while resizing a sticky note, the text size will scale instead of text wrapping. ([Excalidraw tweet](https://twitter.com/aakansha1216/status/1496116528890417155?s=20&t=taXjA6I9Nd0T-C0wYBsG5g))\n- SVG export now includes links ([#4791](https://github.com/excalidraw/excalidraw/pull/4791))\n- Added full screen mode for Obsidian Mobile\n- Release notes\n - disable popup in settings\n - access release notes via the command palette, or the button on the tools panel\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.16)\n\n[![support-membership](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/support-tiers.jpg)](https://ko-fi.com/zsolt)\n'};class ReleaseNotes extends obsidian_module.Modal{constructor(e,A,t){super(e),this.plugin=A,this.version=t}onOpen(){var e;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(e=this.version)&&void 0!==e?e:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let e=this.plugin.settings.previousRelease;e=this.version===e?"0.0.0":e;const A=this.version?Object.keys(RELEASE_NOTES).filter((A=>"Intro"===A||isVersionNewerThanOther(A,e))).map((e=>`${"Intro"===e?"":`# ${e}\n`}${RELEASE_NOTES[e]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian_module.MarkdownRenderer.renderMarkdown(A,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(e=>{e.style.textAlign="right",e.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}const TOOLS_PANEL_WIDTH=228;class ToolsPanel extends React__namespace.Component{constructor(e){super(e),this.pos1=0,this.pos2=0,this.pos3=0,this.pos4=0,this.penDownX=0,this.penDownY=0,this.previousWidth=0,this.previousHeight=0,this.onRightEdge=!1,this.onBottomEdge=!1;const A=e.view.plugin.getPackage(e.view.ownerWindow).react;this.containerRef=A.createRef(),this.state={visible:e.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isDirty:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(e){this.setState((()=>({scriptIconMap:e})))}setPreviewMode(e){this.setState((()=>({isPreviewMode:e})))}setFullscreen(e){this.setState((()=>({isFullscreen:e})))}setDirty(e){this.setState((()=>({isDirty:e})))}setExcalidrawViewMode(e){this.setState((()=>({excalidrawViewMode:e})))}toggleVisibility(e){this.setTopCenter(e),this.setState((e=>({visible:!e.visible})))}setTheme(e){this.setState((A=>({theme:e})))}setTopCenter(e){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(e?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(e?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(e=0,A=0){this.setState((()=>{const{offsetTop:t,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,r=t-e,s=i-A,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-n+d,{top:r{e.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((e=>({minimized:!e.minimized})))},onPointerDown:e=>{const A=e=>{e.preventDefault(),this.pos1=this.pos3-e.clientX,this.pos2=this.pos4-e.clientY,this.pos3=e.clientX,this.pos4=e.clientY,this.updatePosition(this.pos2,this.pos1)},t=()=>{var e,i;null===(e=this.props.view.ownerDocument)||void 0===e||e.removeEventListener("pointerup",t),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",A)};e.preventDefault(),this.penDownX=this.pos3=e.clientX,this.penDownY=this.pos4=e.clientY,this.props.view.ownerDocument.addEventListener("pointerup",t),this.props.view.ownerDocument.addEventListener("pointermove",A)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",width:"initial","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"scriptEngine",title:t$d("INSTALL_SCRIPT_BUTTON"),action:()=>{new ScriptInstallPrompt(this.props.view.plugin).open()},icon:ICONS.scriptEngine,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"ocr",title:t$d("RUN_OCR"),action:e=>{this.props.view.plugin.settings.taskboneEnabled?this.props.view.plugin.taskbone.getTextForView(this.props.view,e[CTRL_OR_CMD]):new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3)},icon:ICONS.ocr,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLink",title:t$d("OPEN_LINK_CLICK"),action:()=>{const e=new MouseEvent("click",{ctrlKey:!0,metaKey:!1,shiftKey:!1,altKey:!1});this.props.view.handleLinkClick(this.props.view,e)},icon:ICONS.openLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLinkProperties",title:t$d("OPEN_LINK_PROPS"),action:()=>{const e=new MouseEvent("click",{ctrlKey:!0,metaKey:!1,shiftKey:!0,altKey:!0});this.props.view.handleLinkClick(this.props.view,e)},icon:ICONS.openLinkProperties,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"save",title:t$d("FORCE_SAVE"),action:()=>{this.props.view.forceSave()},icon:(e=this.state.isDirty,React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:e?"var(--color-accent)":"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),React__namespace.createElement("polyline",{points:"17 21 17 13 7 13 7 21"}),React__namespace.createElement("polyline",{points:"7 3 7 8 15 8"}))),view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"svg",title:t$d("EXPORT_SVG"),action:()=>{this.props.view.saveSVG(),new obsidian_module.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"svg")}`)},icon:ICONS.exportSVG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"png",title:t$d("EXPORT_PNG"),action:()=>{this.props.view.savePNG(),new obsidian_module.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"png")}`)},icon:ICONS.exportPNG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"excalidraw",title:t$d("EXPORT_EXCALIDRAW"),action:()=>{this.props.view.exportExcalidraw()},icon:ICONS.exportExcalidraw,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:()=>{this.props.centerPointer(),insertLaTeXToView(this.props.view)},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:e=>{this.props.view.copyLinkToSelectedElementToClipboard(e[CTRL_OR_CMD]?"group=":e.shiftKey?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"import-svg",title:t$d("IMPORT_SVG"),action:e=>{this.props.view.plugin.importSVGDialog.start(this.props.view)},icon:ICONS.importSVG,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))));var e}renderScriptButtons(e){if(0===Object.keys(this.state.scriptIconMap).length)return"";const A=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,t=t=>e?t.startsWith(A):!t.startsWith(A);return 0===Object.keys(this.state.scriptIconMap).filter((e=>t(e))).length?"":React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,e?"Downloaded":"User"," Scripts"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.keys(this.state.scriptIconMap).filter((e=>t(e))).sort().map((A=>{return React__namespace.createElement(ActionButton,{key:A,title:e?this.state.scriptIconMap[A].name.replace("Downloaded/",""):this.state.scriptIconMap[A].name,action:async()=>{const e=this.props.view.app.vault.getAbstractFileByPath(A);e&&e instanceof obsidian_module.TFile&&this.props.view.plugin.scriptEngine.executeScript(this.props.view,await this.props.view.plugin.app.vault.read(e),this.props.view.plugin.scriptEngine.getScriptName(e),e)},icon:this.state.scriptIconMap[A].svgString?(t=this.state.scriptIconMap[A].svgString,t=t.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]width\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]height\s*=\s*['"][^"']*['"]/g,"").replace("A.filter((A=>{if(t&&A.type!==t)return!1;const[i,n,a,r]=rotatedDimensions(A);return i<=e.x&&i+a>=e.x&&n<=e.y&&n+r>=e.y})),getTextElementAtPointer=(e,A)=>{const t=A.excalidrawAPI;if(!t)return{id:null,text:null};const i=getElementsAtPointer(e,t.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((e=>{const t=A.textMode===TextMode.parsed?A.excalidrawData.getRawText(e.id):e.text;return!!t&&(!!t.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(t).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(e,A)=>{const t=A.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(e,t.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(e,A)=>{const t=A.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(e,t.getSceneElements()).filter((e=>e.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0};class MenuLinks{constructor(e,A){this.render=(e,A)=>React__namespace.createElement("div",null,"Hello"),this.plugin=e,this.ref=A}}var TextMode;!function(e){e.parsed="parsed",e.raw="raw"}(TextMode||(TextMode={}));const HIDE="excalidraw-hidden",SHOW="excalidraw-visible",addFiles=async(e,A,t)=>{if(!e||0===e.length||!A)return;const i=A.excalidrawAPI;if(!i)return;if(e=e.filter((e=>e&&e.size&&e.size.height>0&&e.size.width>0)),0===e.length)return;const n=scaleLoadedImage(A.getScene(),e);void 0===t&&(t=n.scene.appState.theme),n.dirty&&await A.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of e)if(A.excalidrawData.hasFile(i.id)&&A.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,t,i.hasSVGwithBitmap),A.excalidrawData.hasEquation(i.id)){const e=A.excalidrawData.getEquation(i.id).latex;A.excalidrawData.setEquation(i.id,{latex:e,isLoaded:!0})}i.addFiles(e)},warningUnknowSeriousError=()=>{new obsidian_module.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian_module.TextFileView{constructor(e,A){super(e),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.metaKeyDown=!1,this.ctrlKeyDown=!1,this.shiftKeyDown=!1,this.altKeyDown=!1,this.currentPosition={x:0,y:0},this.semaphores={popoutUnload:!1,viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var e;return null!==(e=this.hookServer)&&void 0!==e?e:this.plugin.ea},this.preventReloadResetTimer=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.plugin=A,this.excalidrawData=new ExcalidrawData(A),this.hookServer=A.ea}setHookServer(e){this.hookServer=e||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,t=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));t&&t instanceof obsidian_module.TFile?app.vault.modify(t,JSON.stringify(e,null,"\t")):app.vault.create(A,JSON.stringify(e,null,"\t"))}async exportExcalidraw(){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidraw`;const A=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(A);const t=getNewUniqueFilepath(app.vault,e,A);app.vault.create(t,JSON.stringify(this.getScene(),null,"\t")),new obsidian_module.Notice(`Exported to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(e,A,t=!1){const i={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=A?A:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:t})}),i,getExportPadding(this.plugin,this.file))}async saveSVG(e,A=!1){if(!e){if(!this.getScene)return!1;e=this.getScene()}const t=async(t,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t)),a=await this.svg(e,i,A);if(!a)return;const r=(new XMLSerializer).serializeToString(embedFontsInSVG(a,this.plugin));n&&n instanceof obsidian_module.TFile?await app.vault.modify(n,r):await app.vault.create(t,r)};this.plugin.settings.autoExportLightAndDark?(await t(getIMGFilename(this.file.path,"dark.svg"),"dark"),await t(getIMGFilename(this.file.path,"light.svg"),"light")):await t(getIMGFilename(this.file.path,"svg"))}async png(e,A,t=!1){const i={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=A?A:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:t})}),i,getExportPadding(this.plugin,this.file),getPNGScale(this.plugin,this.file))}async savePNG(e,A=!1){if(!e){if(!this.getScene)return!1;e=this.getScene()}const t=async(t,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t)),a=await this.png(e,i,A);a&&(n&&n instanceof obsidian_module.TFile?await app.vault.modifyBinary(n,await a.arrayBuffer()):await app.vault.createBinary(t,await a.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await t(getIMGFilename(this.file.path,"dark.png"),"dark"),await t(getIMGFilename(this.file.path,"light.png"),"light")):await t(getIMGFilename(this.file.path,"png"))}async save(e=!0,A=!1){if(!this.isLoaded)return;if(this.semaphores.saving)return;this.semaphores.saving=!0;let t=!1;if(this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const i=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||A),n=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(n):await this.excalidrawData.syncElements(n,this.excalidrawAPI.getAppState().selectedElementIds)&&!this.semaphores.popoutUnload&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted))),i&&(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=e,await super.save(),t=this.lastSaveTimestamp===this.file.stat.mtime&&!e&&A,this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),e)){const e=this;this.preventReloadResetTimer=setTimeout((()=>e.semaphores.preventReload=!1),2e3)}if(!t&&!this.semaphores.autosaving&&!this.semaphores.viewunload){const e=this.excalidrawData.autoexportPreference;(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||e===AutoexportPreference.both||e===AutoexportPreference.svg)&&this.saveSVG(),(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||e===AutoexportPreference.both||e===AutoexportPreference.png)&&this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(e){errorlog({where:"ExcalidrawView.save",fn:this.save,error:e}),warningUnknowSeriousError()}this.semaphores.saving=!1,t&&this.reload(!0,this.file)}else this.semaphores.saving=!1}getViewData(){if(!this.getScene)return this.data;if(!this.excalidrawData.loaded)return this.data;const e=this.getScene();if(!this.compatibilityMode){let e=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==e&&(e=this.data.search(/(%%\n)?# Drawing\n/)),-1==e)return this.data;let A=this.data.substring(0,e).replace(/excalidraw-plugin:\s.*\n/,"excalidraw-plugin: "+(this.textMode===TextMode.raw?"raw\n":"parsed\n"));const t=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;A.match(t)&&(A=A.replace(t,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const i=A+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted)));return this.excalidrawData.disableCompression=!1,i}return this.compatibilityMode?JSON.stringify(e,null,"\t"):this.data}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((e=>{e[0].containerEl.style.display=e[1]})),this.hiddenMobileLeaves=[])}gotoFullscreen(){this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef&&(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),(e=>{for(;e&&!e.hasClass("workspace-split");)e.addClass(SHOW),e=e.parentElement;e&&e.addClass(SHOW);const A=this.ownerDocument;A.body.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),A.body.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(HIDE),A.body.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),A.body.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(HIDE))),A.body.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),A.body.querySelectorAll("div.workspace-ribbon").forEach((e=>e.addClass(HIDE))),A.body.querySelectorAll("div.mobile-navbar").forEach((e=>e.addClass(HIDE))),A.body.querySelectorAll("div.status-bar").forEach((e=>e.addClass(HIDE)))})(this.contentEl))}isFullscreen(){return Boolean(document.body.querySelector(".excalidraw-hidden"))}exitFullscreen(){this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1);const e=this.ownerDocument;e.querySelectorAll(".excalidraw-hidden").forEach((e=>e.removeClass(HIDE))),e.querySelectorAll(".excalidraw-visible").forEach((e=>e.removeClass(SHOW)))}async handleLinkClick(e,A){var t,i,n,a;const r=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&this.ownerDocument.body.removeChild(r);const s=this.getSelectedTextElement(),o=(null==s?void 0:s.id)?null:this.getSelectedImageElement(),l=(null==o?void 0:o.id)||(null==s?void 0:s.id)?null:this.getSelectedElementWithLink();let c=null,d=null,h=null;if((null==s?void 0:s.id)||(null==l?void 0:l.id)){if(h=null!==(t=null==l?void 0:l.text)&&void 0!==t?t:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(s.id):s.text,!h)return;if(h=h.replaceAll("\n",""),this.getHookServer().onLinkClickHook){const e=null!==(i=s.id)&&void 0!==i?i:l.id,t=this.excalidrawAPI.getSceneElements().filter((A=>A.id===e))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,A,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id!==null",fn:this.getHookServer().onLinkClickHook,error:e})}}if(h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");const n=REGEX_LINK.getRes(h).next();if(!n.value){const e=h.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!e.value||e.value.length<2)return;const A=app.workspace.getLeavesOfType("search");if(0==A.length)return;return A[0].view.setQuery(`tag:${e.value[1]}`),app.workspace.revealLeaf(A[0]),void(this.isFullscreen()&&this.exitFullscreen())}if(h=REGEX_LINK.getLink(n),h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");if(h.search("#")>-1){const e=getLinkParts(h,this.file);d=`#${e.isBlockRef?"^":""}${e.ref}`,h=e.path}if(h.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);c=e.app.metadataCache.getFirstLinkpathDest(h,e.file.path)}if(null==o?void 0:o.id){if(this.excalidrawData.hasEquation(o.fileId)){const e=this.excalidrawData.getEquation(o.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),e,"").openAndGetValue((async A=>{A&&A!==e&&(this.excalidrawData.setEquation(o.fileId,{latex:A,isLoaded:!1}),await this.save(!1),await updateEquation(A,o.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(o.fileId)){if(A.altKey){const e=this.excalidrawData.getFile(o.fileId);if("md"===e.file.extension&&!this.plugin.isExcalidrawFile(e.file))return void new Prompt(app,"Customize the link",e.linkParts.original,"","Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT").openAndGetValue((async A=>{A&&e.linkParts.original!==A&&(e.resetImage(this.file.path,A),await this.save(!1),await this.loadSceneFiles(),this.setDirty(2))}))}h=this.excalidrawData.getFile(o.fileId).file.path,c=this.excalidrawData.getFile(o.fileId).file}}if(h){if(this.getHookServer().onLinkClickHook){const e=null!==(a=null!==(n=o.id)&&void 0!==n?n:s.id)&&void 0!==a?a:l.id,t=this.excalidrawAPI.getSceneElements().filter((A=>A.id===e))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,A,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id===null",fn:this.getHookServer().onLinkClickHook,error:e})}}try{if(A.shiftKey&&this.isFullscreen()&&this.exitFullscreen(),!c)return void new NewFileActions(this.plugin,h,A.shiftKey,!app.isMobile&&A.metaKey,e).open();const t=!app.isMobile&&(A.metaKey&&this.linksAlwaysOpenInANewPane||A.metaKey)?app.workspace.openPopoutLeaf():A.shiftKey||this.linksAlwaysOpenInANewPane?getNewOrAdjacentLeaf(this.plugin,e.leaf):e.leaf;await t.openFile(c,d?{active:!1,eState:{subpath:d}}:void 0)}catch(e){new obsidian_module.Notice(e,4e3)}}else new obsidian_module.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4)}onResize(){var e,A;if(this.plugin.leafChangeTimeout)return;const t=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&t&&"text"!==(null===(A=null===(e=t.getAppState())||void 0===e?void 0:e.editingElement)||void 0===A?void 0:A.type)&&this.zoomToFit(!1)}getSceneVersion(e){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(e.filter((e=>!e.isDeleted)))}async forceSave(e=!1){this.semaphores.autosaving||this.semaphores.saving?e||new obsidian_module.Notice("Force Save aborted because saving is in progress)"):(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=!1,this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,e||new obsidian_module.Notice("Save successful",1e3))}onload(){const e=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||e||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const A=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=A,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=e=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("save",t$d("FORCE_SAVE"),(async()=>this.forceSave())),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(e=>this.handleLinkClick(this,e))),app.isMobile||this.addAction("fullscreen","Press ESC to exit fullscreen mode",(()=>this.gotoFullscreen()));const t=this;app.workspace.onLayoutReady((async()=>{t.contentEl.addClass("excalidraw-view"),await t.addSlidingPanesListner(),t.addParentMoveObserver(),t.onKeyUp=e=>{t.ctrlKeyDown=e[CTRL_OR_CMD],t.shiftKeyDown=e.shiftKey,t.altKeyDown=e.altKey,t.metaKeyDown=e.metaKey},t.onKeyDown=e=>{this.ctrlKeyDown=e[CTRL_OR_CMD],this.shiftKeyDown=e.shiftKey,this.altKeyDown=e.altKey,this.metaKeyDown=e.metaKey},t.ownerWindow.addEventListener("keydown",t.onKeyDown,!1),t.ownerWindow.addEventListener("keyup",t.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const e=this;this.slidingPanesListner=()=>{e.refresh&&e.refresh()};let A=app.workspace.rootSplit;for(;!A;)await sleep(50),A=app.workspace.rootSplit;A.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var e;this.slidingPanesListner&&(null===(e=app.workspace.rootSplit.containerEl)||void 0===e||e.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var e;const A=null!==(e=getParentOfClass(this.containerEl,"popover"))&&void 0!==e?e:getParentOfClass(this.containerEl,"workspace-leaf");if(!A)return;const t=A.classList.contains("popover");this.offsetLeft=A.offsetLeft,this.offsetTop=A.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async e=>{const A=e[0].target;if(!(A instanceof HTMLElement))return;const{offsetLeft:t,offsetTop:n}=A;t===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=t,i.offsetTop=n)})),this.parentMoveObserver.observe(A,{attributeOldValue:!0,attributeFilter:t?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(e){const A=this.excalidrawAPI;if(!this.excalidrawRef||!A)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const t=A.getAppState();this.excalidrawData.scene.theme=e,this.updateScene({appState:Object.assign(Object.assign({},t),{theme:e}),commitToHistory:!1})}async changeTextMode(e,A=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=e,e===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(e===TextMode.parsed);const t=this.excalidrawAPI;t&&A&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(!1),t.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const e=async()=>{var A;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval));const t=this.excalidrawAPI;if(!t)return void warningUnknowSeriousError();const i=t.getAppState(),n=null!==i.editingElement;if(this.refresh(),!this.semaphores.dirty||this.semaphores.dirty!=(null===(A=this.file)||void 0===A?void 0:A.path)||!this.plugin.settings.autosave||this.semaphores.forceSaving||this.semaphores.autosaving||n||null!==i.draggingElement)this.autosaveTimer=setTimeout(e,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty&&this.plugin.settings.autosave?1e3:this.plugin.settings.autosaveInterval);else{if(this.autosaveTimer=null,this.excalidrawRef){this.semaphores.autosaving=!0;const e=this;this.save().then((()=>e.semaphores.autosaving=!1))}this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}};this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}onunload(){var e,A,t,i,n,a;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,this.semaphores.popoutUnload=this.ownerDocument!==document&&0===this.ownerDocument.body.querySelectorAll(".workspace-tab-header").length,null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keydown",this.onKeyDown,!1),null===(A=this.ownerWindow)||void 0===A||A.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(e){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:e})}const r=null===(i=null===(t=this.containerEl)||void 0===t?void 0:t.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(r)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null)}async reload(e=!1,A){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const t=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!t)return;const i=A&&A===this.file;i&&(this.data=await app.vault.read(A),this.preventAutozoom()),e?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}async zoomToElementId(e,A){let t=0;for(;!this.excalidrawAPI&&t++<100;)await sleep(50);const i=this.excalidrawAPI;if(!i)return;const n=i.getSceneElements();let a=n.filter((A=>A.id===e));if(0!==a.length){if(A){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],n);e.length>0&&(a=e)}this.preventAutozoom(),this.zoomToElements(!i.getAppState().viewModeEnabled,a)}}setEphemeralState(e){if(!e)return;const A=this;let t=null;e.match&&e.match.content&&e.match.matches&&1===e.match.matches.length&&2===e.match.matches[0].length&&(t=[e.match.content.substring(e.match.matches[0][0],e.match.matches[0][1])]);const i=getEmbeddedFilenameParts(e.subpath);i.hasBlockref&&setTimeout((()=>A.zoomToElementId(i.blockref,i.hasGroupref)),300),i.hasSectionref?t=[`# ${i.sectionref}`]:e.line&&e.line>0&&(t=[this.data.split("\n")[e.line-1]]),t&&setTimeout((async()=>{let e=0;for(;!A.excalidrawAPI&&e++<100;)await sleep(50);const n=A.excalidrawAPI;if(!n)return;const a=n.getSceneElements();A.selectElementsMatchingQuery(a,t,!n.getAppState().viewModeEnabled,i.hasSectionref,i.hasGroupref)}),300),super.setEphemeralState(e)}clear(){const e=this.excalidrawAPI;this.excalidrawRef&&e&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,e.resetScene(),this.previousSceneVersion=0)}async setViewData(e,A=!1){this.isLoaded=!1,this.file&&(this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),A&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,e=this.data=e.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(e,this.file),this.plugin.settings.compatibilityMode||new obsidian_module.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const A=getTextMode(e);this.changeTextMode(A,!1);try{if(!await this.excalidrawData.loadData(e,this.file,this.textMode))return}catch(e){return errorlog({where:"ExcalidrawView.setViewData",error:e}),new obsidian_module.Notice(`Error loading drawing:\n${e.message}${"Cannot read property 'index' of undefined"===e.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4),void this.setMarkdownView()}}await this.loadDrawing(!0);const A=this.excalidrawData.getOnLoadScript();if(A){const e=this,t=this.file.basename+"-onlaod-script",i=()=>{e.excalidrawAPI?e.plugin.scriptEngine.executeScript(e,A,t,this.file):setTimeout(i,200)};i()}this.isLoaded=!0})))}async loadSceneFiles(){if(!this.excalidrawAPI)return;const e=new EmbeddedFilesLoader(this.plugin),A=e=>{this.nextLoader=null,this.activeLoader=e,e.loadSceneFiles(this.excalidrawData,((e,t)=>{e&&(addFiles(e,this,t),this.activeLoader=null,this.nextLoader?A(this.nextLoader):this.excalidrawData.getFiles().some((e=>{if(e&&!e.file&&e.attemptCounter<30){const e=this,A=this.file.path;return setTimeout((async()=>{e&&e.excalidrawAPI&&A===e.file.path&&e.loadSceneFiles()}),2e3),!0}return!1})))}),0)};this.activeLoader?this.nextLoader=e:A(e)}async synchronizeWithData(e){let A=0;for(;this.semaphores.saving&&A++<30;)await sleep(100);if(A>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let t=!1;try{const A=e.deletedElements.map((e=>e.id)),i=this.excalidrawAPI.getSceneElements().filter((e=>!A.contains(e.id))),n=i.map((e=>e.id)),a=A=>{switch(A.type){case"text":this.excalidrawData.textElements.set(A.id,e.textElements.get(A.id));break;case"image":e.getFile(A.fileId)?(this.excalidrawData.setFile(A.fileId,e.getFile(A.fileId)),t=!0):e.getEquation(A.fileId)&&(this.excalidrawData.setEquation(A.fileId,e.getEquation(A.fileId)),t=!0)}e.elementLinks.has(A.id)&&this.excalidrawData.elementLinks.set(A.id,e.elementLinks.get(A.id))};e.scene.elements.forEach(((A,r,s)=>{const o=i.filter((e=>e.id===A.id))[0];if(o&&(o.versione.view.file===this.file)).length>0}setDirty(e){var A,t;this.semaphores.dirty=null===(A=this.file)||void 0===A?void 0:A.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),!this.semaphores.viewunload&&(null===(t=this.toolsPanelRef)||void 0===t?void 0:t.current)&&this.toolsPanelRef.current.setDirty(!0),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){var e;if(this.semaphores.viewunload)return;const A=this.excalidrawAPI;if(!A)return;this.semaphores.dirty=null,(null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)&&this.toolsPanelRef.current.setDirty(!1);const t=A.getSceneElements();t&&(this.previousSceneVersion=this.getSceneVersion(t)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var e;if(this.semaphores.viewunload)return;const A=this.excalidrawAPI;if(!A)return;const t=A.getAppState(),i=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current;i&&(i.setTheme(t.theme),i.setExcalidrawViewMode(t.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(e){return"excalidraw"===e}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}onPaneMenu(e,A){this.excalidrawAPI&&this.getViewSelectedElements().some((e=>"text"===e.type))&&e.addItem((e=>{e.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((e=>{this.handleLinkClick(this,e)}))})),this.compatibilityMode?e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):e.addItem((e=>{e.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("EXPORT_EXCALIDRAW")).setIcon(ICON_NAME).onClick((async()=>{this.exportExcalidraw()})).setSection("pane")})),e.addItem((e=>{e.setTitle(t$d("SAVE_AS_PNG")).setIcon("save-png").setSection("pane").onClick((async e=>{if(this.getScene&&this.file)if(e[CTRL_OR_CMD]){const A=await this.png(this.getScene(),void 0,e.shiftKey);if(!A)return;const t=new FileReader;t.readAsDataURL(A);const i=this;t.onloadend=function(){download(null,t.result,`${i.file.basename}.png`)}}else this.savePNG(void 0,e.shiftKey),new obsidian_module.Notice("PNG export is ready"+(e.shiftKey?" with embedded scene":""))})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("SAVE_AS_SVG")).setIcon("save-svg").setSection("pane").onClick((async e=>{if(this.getScene&&this.file){if(e[CTRL_OR_CMD]){let A=await this.svg(this.getScene(),void 0,e.shiftKey);return A?(A=embedFontsInSVG(A,this.plugin),void download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`)):null}this.saveSVG(void 0,e.shiftKey),new obsidian_module.Notice("SVG export is ready"+(e.shiftKey?" with embedded scene":""))}}))})).addItem((e=>{e.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(e,A)}async getLibrary(){var e;const A=this.plugin.getStencilLibrary();return(null==A?void 0:A.library)?A.library:null!==(e=null==A?void 0:A.libraryItems)&&void 0!==e?e:[]}async instantiateExcalidraw(e){for(;!this.semaphores.scriptsReady;)await sleep(50);const A=this.plugin.getPackage(this.ownerWindow).react,t=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const i=A.createElement((()=>{const t=A.useRef(null),i=A.useRef(null),n=A.useRef(null),[a,r]=A.useState({width:void 0,height:void 0});let s=null,o=null,l=null,c=Date.now(),d=!1;this.toolsPanelRef=i,this.obsidianMenu=new ObsidianMenu(this.plugin,i),this.menuLinks=new MenuLinks(this.plugin,n);const h=()=>{let e,A;const t=new Promise(((t,i)=>{e=t,A=i}));return t.resolve=e,t.reject=A,t},u=A.useMemo((()=>({current:{readyPromise:h()}})),[]);A.useEffect((()=>{u.current.readyPromise.then((e=>{var A;this.excalidrawAPI=e,e.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.loadSceneFiles(),this.updateContainerSize(null,!0),null===(A=this.excalidrawWrapperRef.current.firstElementChild)||void 0===A||A.focus(),this.initializeToolsIconPanelAfterLoading()}))}),[u]),this.excalidrawRef=u,this.excalidrawWrapperRef=t,A.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const e=()=>{try{const e=this.contentEl.clientWidth,A=this.contentEl.clientHeight;if(0===e||0===A)return;r({width:e,height:A}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(e){errorlog({where:"Excalidraw React-Wrapper, onResize",error:e})}};return this.ownerWindow.addEventListener("resize",e),()=>{var A;return null===(A=this.ownerWindow)||void 0===A?void 0:A.removeEventListener("resize",e)}}),[t]),this.getSelectedTextElement=()=>{var e;const A=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!A)return{id:null,text:null};if(A.getAppState().viewModeEnabled){if(s){const e=s;return s=null,e}return{id:null,text:null}}const t=A.getSceneElements().filter((e=>e.id===Object.keys(A.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if("text"===t[0].type)return{id:t[0].id,text:t[0].text};if(["image","arrow"].contains(t[0].type))return{id:null,text:null};const i=null===(e=t[0].boundElements)||void 0===e?void 0:e.filter((e=>"text"===e.type));if((null==i?void 0:i.length)>0){const e=A.getSceneElements().filter((e=>e.id===i[0].id));if(e.length>0)return{id:e[0].id,text:e[0].text}}if(0===t[0].groupIds.length)return{id:null,text:null};const n=t[0].groupIds[0],a=A.getSceneElements().filter((e=>{var A;return null===(A=e.groupIds)||void 0===A?void 0:A.includes(n)})).filter((e=>"text"===e.type));return 0===a.length?{id:null,text:null}:{id:t[0].id,text:t[0].text}},this.getSelectedImageElement=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,fileId:null};if(e.getAppState().viewModeEnabled){if(o){const e=o;return o=null,e}return{id:null,fileId:null}}const A=e.getSceneElements().filter((A=>A.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,fileId:null};if("image"==A[0].type)return{id:A[0].id,fileId:A[0].fileId};if("text"===A[0].type)return{id:null,fileId:null};if(0===A[0].groupIds.length)return{id:null,fileId:null};const t=A[0].groupIds[0],i=e.getSceneElements().filter((e=>{var A;return null===(A=e.groupIds)||void 0===A?void 0:A.includes(t)})).filter((e=>"image"==e.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(l){const e=l;return l=null,e}return{id:null,text:null}}const A=e.getSceneElements().filter((A=>A.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,text:null};if(A[0].link)return{id:A[0].id,text:A[0].link};if(0===A[0].groupIds.length)return{id:null,text:null};const t=A[0].groupIds[0],i=e.getSceneElements().filter((e=>{var A;return null===(A=e.groupIds)||void 0===A?void 0:A.includes(t)})).filter((e=>e.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(e,A,t=!0)=>{var i,n,a,r,s;const o=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!o)return;const l=o.getAppState(),c=this.plugin.ea.getAPI(this);c.style.strokeColor=null!==(i=l.currentItemStrokeColor)&&void 0!==i?i:"black",c.style.opacity=null!==(n=l.currentItemOpacity)&&void 0!==n?n:1,c.style.fontFamily=null!==(a=null!=A?A:l.currentItemFontFamily)&&void 0!==a?a:1,c.style.fontSize=null!==(r=l.currentItemFontSize)&&void 0!==r?r:20,c.style.textAlign=null!==(s=l.currentItemTextAlign)&&void 0!==s?s:"left";const{width:d,height:h}=l,g=viewportCoordsToSceneCoords({clientX:0,clientY:0},l),p=viewportCoordsToSceneCoords({clientX:d,clientY:h},l),w=g.x>this.currentPosition.x||p.xthis.currentPosition.y||p.y{const a=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!a)return!1;const r=e.filter((e=>"text"==e.type));for(let e=0;ee.id)),o=a.getSceneElements(),l=[];for(let A=0;Ae.id===t))[0],l.push(t))}const c=n?o.concat(e.filter((e=>!l.includes(e.id)))):e.filter((e=>!l.includes(e.id))).concat(o);if(this.updateScene({elements:c,commitToHistory:!0},!0),i&&Object.keys(i).length>0){const e=[];Object.keys(i).forEach((A=>{if(e.push({mimeType:i[A].mimeType,id:i[A].id,dataURL:i[A].dataURL,created:i[A].created}),i[A].file){const e=new EmbeddedFile(this.plugin,this.file.path,i[A].file),t=a.getAppState();e.setImage(i[A].dataURL,i[A].mimeType,i[A].size,"dark"===t.theme,i[A].hasSVGwithBitmap),this.excalidrawData.setFile(i[A].id,e)}i[A].latex&&this.excalidrawData.setEquation(i[A].id,{latex:i[A].latex,isLoaded:!0})})),a.addFiles(e)}return t?await this.save(!1):this.setDirty(5),!0},this.getScene=()=>{const e=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!e)return null;const A=e.getSceneElements(),t=e.getAppState(),i=e.getFiles();if(i){const e=A.filter((e=>"image"===e.type)).map((e=>e.fileId)),t=Object.keys(i).filter((A=>!e.contains(A)));t.forEach((e=>delete i[e]))}return{type:"excalidraw",version:2,source:"https://excalidraw.com",elements:A,appState:{theme:t.theme,viewBackgroundColor:t.viewBackgroundColor,currentItemStrokeColor:t.currentItemStrokeColor,currentItemBackgroundColor:t.currentItemBackgroundColor,currentItemFillStyle:t.currentItemFillStyle,currentItemStrokeWidth:t.currentItemStrokeWidth,currentItemStrokeStyle:t.currentItemStrokeStyle,currentItemRoughness:t.currentItemRoughness,currentItemOpacity:t.currentItemOpacity,currentItemFontFamily:t.currentItemFontFamily,currentItemFontSize:t.currentItemFontSize,currentItemTextAlign:t.currentItemTextAlign,currentItemStartArrowhead:t.currentItemStartArrowhead,currentItemEndArrowhead:t.currentItemEndArrowhead,scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom,currentItemRoundness:t.currentItemRoundness,gridSize:t.gridSize,colorPalette:t.colorPalette,currentStrokeOptions:t.currentStrokeOptions},prevTextMode:this.prevTextMode,files:i}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const e=this.excalidrawAPI;(null==u?void 0:u.current)&&e&&e.refresh()};let g={x:0,y:0},p=null;this.clearHoverPreview=()=>{if(p){const e=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(e),p=null}};const w=e=>{var A,t,i,n,a;const r=null===(A=app.dragManager.draggable)||void 0===A?void 0:A.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(t=app.dragManager.draggable)||void 0===t?void 0:t.type)?"link":(null===(i=e.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=e.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=e.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let m=!1;const f=()=>{if(s=getTextElementAtPointer(this.currentPosition,this),s&&s.id){const e=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,e),void(s=null)}if(o=getImageElementAtPointer(this.currentPosition,this),o&&o.id){const e=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,e),void(o=null)}if(l=getElementWithLinkAtPointer(this.currentPosition,this),l&&l.id){const e=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,e),void(l=null)}};let B=null;const E=(e,A)=>{var t,i;if(!B)return;if(null===(i=null===(t=this.excalidrawAPI)||void 0===t?void 0:t.getAppState())||void 0===i?void 0:i.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!e){if(!this.currentPosition)return;e="";const t=getTextElementAtPointer(this.currentPosition,this);if(t&&t.text){A=this.excalidrawAPI.getSceneElements().filter((e=>e.id===t.id))[0];const i=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(t.id):t.text;if(!i)return;if(i.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(i).next();if(!n.value)return;if((e=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const t=getImageElementAtPointer(this.currentPosition,this);if(A=this.excalidrawAPI.getSceneElements().filter((e=>e.id===t.id))[0],!t||!t.fileId)return;if(!this.excalidrawData.hasFile(t.fileId))return;const i=this.excalidrawData.getFile(t.fileId),n=i.linkParts.ref?`#${i.linkParts.isBlockRef?"^":""}${i.linkParts.ref}`:"";e=this.excalidrawData.getFile(t.fileId).file.path+n}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(A,e,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:e})}if(this.semaphores.hoverSleep)return;const n=app.metadataCache.getFirstLinkpathDest(e.split("#")[0],this.file.path);if(!n)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))return;this.semaphores.hoverSleep=!0;const a=this;if(setTimeout((()=>a.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=e,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,app.workspace.trigger("hover-link",{event:B,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),g=this.currentPosition,this.isFullscreen()){const e=this;setTimeout((()=>{var A,t,i,a;const r=null!==(a=null===(i=null===(t=null===(A=this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))||void 0===A?void 0:A.parentElement)||void 0===t?void 0:t.parentElement)||void 0===i?void 0:i.parentElement)&&void 0!==a?a:this.ownerDocument.body.querySelector("div.popover");r&&e.contentEl.append(r)}),400)}},{Excalidraw:b}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,C=A.createElement("div",{className:"excalidraw-wrapper",ref:t,key:"abc",tabIndex:0,onKeyDown:e=>{e.target!==C.ref.current&&(this.isFullscreen()&&e.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!e[CTRL_OR_CMD]||e.shiftKey||e.altKey||E())},onPointerDown:e=>{(e[CTRL_OR_CMD]||e.metaKey)&&(this.plugin.settings.allowCtrlClick||e.metaKey)&&setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(this,e)}))},onMouseMove:e=>{B=e.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:e=>{const A=w(e.dataTransfer);if(A)return e.dataTransfer.dropEffect=A,e.preventDefault(),!1},onDragLeave:()=>{}},A.createElement(b,{ref:u,width:a.width,height:a.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:!1,saveAsImage:!1,saveToActiveFile:!1}},initState:null==e?void 0:e.appState,initialData:e,detectScroll:!0,onPointerUpdate:e=>{if(this.currentPosition=e.pointer,p&&(Math.abs(g.x-e.pointer.x)>50||Math.abs(g.y-e.pointer.y)>50)&&this.clearHoverPreview(),m){if(!d&&"down"===e.button){if(d=!0,this.ctrlKeyDown||this.metaKeyDown)return void f();const e=Date.now();return e-c<600&&e-c>40&&f(),void(c=e)}"up"===e.button&&(d=!1),(this.ctrlKeyDown||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&E()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,hideWelcomeScreen:!0,renderMenuLinks:null,onChange:(e,A)=>{var t,i,n,a;const r=()=>{this.plugin.ea.onCanvasColorChangeHook&&this.plugin.ea.onCanvasColorChangeHook(this.plugin.ea,this,A.viewBackgroundColor)};if(m=A.viewModeEnabled,this.semaphores.justLoaded){if((null!==(a=null===(n=null===(i=null===(t=this.excalidrawData)||void 0===t?void 0:t.scene)||void 0===i?void 0:i.elements)||void 0===n?void 0:n.length)&&void 0!==a?a:0)>0&&0===e.length)return;return this.semaphores.justLoaded=!1,!this.semaphores.preventAutozoom&&this.plugin.settings.zoomToFitOnOpen&&this.zoomToFit(!1,!0),this.previousSceneVersion=this.getSceneVersion(e),this.previousBackgroundColor=A.viewBackgroundColor,void r()}if(!this.semaphores.dirty&&null===A.editingElement&&null===A.editingLinearElement){const t=this.getSceneVersion(e);((t>0||0===t&&e.length>0)&&t!==this.previousSceneVersion||A.viewBackgroundColor!==this.previousBackgroundColor&&this.file===this.excalidrawData.file)&&(this.previousSceneVersion=t,this.previousBackgroundColor=A.viewBackgroundColor,this.setDirty(6),r())}},onLibraryChange:e=>{(async()=>{const A={type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:e};this.plugin.setStencilLibrary(A),await this.plugin.saveSettings()})()},renderTopRightUI:this.obsidianMenu.renderButton,onPaste:e=>{if(e.elements){const e=this;setTimeout((()=>e.save(!1)),300)}return!0},onThemeChange:async e=>{var A;this.excalidrawData.scene.appState.theme=e,this.loadSceneFiles(),null===(A=null==i?void 0:i.current)||void 0===A||A.setTheme(e)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:e=>{const A=this.excalidrawAPI;if(!A)return!1;const t=A.getAppState();this.currentPosition=viewportCoordsToSceneCoords({clientX:e.clientX,clientY:e.clientY},t);const i=app.dragManager.draggable,n=(A,t,n)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:e,draggable:i,type:A,payload:{files:t,text:n},excalidrawFile:this.file,view:this,pointerPosition:this.currentPosition})}catch(e){return new obsidian_module.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:e}),!1}};switch(e[CTRL_OR_CMD]=e.shiftKey||e[CTRL_OR_CMD],null==i?void 0:i.type){case"file":if(!n("file",[i.file],null)){if(i.file.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(e[CTRL_OR_CMD]&&(IMAGE_TYPES.contains(i.file.extension)||"md"===i.file.extension)){const t=this.plugin.ea;return t.reset(),t.setView(this),(async()=>{t.canvas.theme=A.getAppState().theme,await t.addImage(this.currentPosition.x,this.currentPosition.y,i.file,!e.altKey),t.addElementsToView(!1,!1,!0)})(),!1}this.addText(`[[${app.metadataCache.fileToLinktext(i.file,this.file.path,!0)}]]`)}return!1;case"files":return n("file",i.files,null)||(async()=>{if(e[CTRL_OR_CMD]){const t=this.plugin.ea;t.reset(),t.setView(this),t.canvas.theme=A.getAppState().theme;let n=0;for(const A of i.files)(IMAGE_TYPES.contains(A.extension)||"md"===A.extension)&&(await t.addImage(this.currentPosition.x+50*n,this.currentPosition.y+50*n,A,!e.altKey),n++,await t.addElementsToView(!1,!1,!0))}else{for(const e of i.files)await this.addText(`[[${app.metadataCache.fileToLinktext(e,this.file.path,!0)}]]`,void 0,!1),this.currentPosition.y+=2*t.currentItemFontSize;this.save(!1)}})(),!1}if(e.dataTransfer.types.includes("Files")){if(e.dataTransfer.types.includes("text/plain")){const A=e.dataTransfer.getData("text");if(A&&n("text",null,A))return!1}return!0}if(e.dataTransfer.types.includes("text/plain")){const A=e.dataTransfer.getData("text");if(!A)return!0;if(!n("text",null,A)){if(this.plugin.settings.iframelyAllowed&&A.match(/^https?:\/\/\S*$/))return(async()=>{var e;const t=await this.addText(A),i=`http://iframely.server.crestify.com/iframely?url=${A}`,n=JSON.parse(await obsidian_module.request({url:i}));if(!n||n.error||!(null===(e=n.meta)||void 0===e?void 0:e.title))return!1;const a=this.plugin.ea;a.reset(),a.setView(this);const r=a.getViewElements().filter((e=>e.id===t));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${n.meta.title}](${A})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))})(),!1;if(A.startsWith("obsidian://open?vault=")){const t=e.dataTransfer.getData("text/html");if(t){const e=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===e.length){const A=decodeURIComponent(e[1]).split("#"),t=app.vault.getAbstractFileByPath(A[0]);if(t&&t instanceof obsidian_module.TFile){const e=app.metadataCache.fileToLinktext(t,this.file.path);return void this.addText(`[[${e+(A.length>1?"#"+A[1]+"|"+e:"")}]]`)}return this.addText(`[[${decodeURIComponent(e[1])}]]`),!1}}const i=A.split("file=");if(2===i.length)return this.addText(`[[${decodeURIComponent(i[1])}]]`),!1}this.addText(A.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!n("unknown",null,null)},onBeforeTextEdit:e=>{var A;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(A=e.originalText)&&void 0!==A?A:e.text;return this.excalidrawData.getRawText(e.id)||e.rawText},onBeforeTextSubmit:(e,A,t,i)=>{const n=this.excalidrawAPI;if(!n)return[null,null,null];const a="PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED";if(A.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((()=>{const A=this.excalidrawAPI.getSceneElements(),t=A.filter((A=>A.id===e.id));if(1===t.length){const e=cloneElement(t[0]);e.rawText=a,A[A.indexOf(t[0])]=e,this.excalidrawData.setTextElement(e.id,a,a,(()=>{})),this.updateScene({elements:A}),n.history.clear()}})),[a,a,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(e.id),this.setDirty(7),[null,null,null];const r=e.containerId;if(A!==e.text||t!==e.originalText||!this.excalidrawData.getRawText(e.id)){this.setDirty(8);const[i,a,s]=this.excalidrawData.setTextElement(e.id,A,t,(async(A,t)=>{var i,a;if(this.textMode===TextMode.raw)return;const r=this.excalidrawAPI.getSceneElements(),s=r.filter((A=>A.id===e.id));if(1===s.length){const e=cloneElement(s[0]),o=s[0].containerId?null===(a=null===(i=n.getSceneElements().filter((e=>e.id===s[0].containerId)))||void 0===i?void 0:i[0])||void 0===a?void 0:a.type:void 0;this.excalidrawData.updateTextElement(e,A,t,!0,o),r[r.indexOf(s[0])]=e,this.updateScene({elements:r}),e.containerId&&this.updateContainerSize(e.containerId)}n.history.clear()}));return i?(r&&this.updateContainerSize(r,!0),this.textMode===TextMode.raw?[A,t,s]:A===i?s?[i,a,s]:[null,null,null]:(n.history.clear(),[i,a,s])):[null,null,null]}return r&&this.updateContainerSize(r,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(e.id):[null,null,null]},onLinkOpen:async(e,A)=>{var t;if(A.preventDefault(),!e)return;const i=e.link;if(!i||""===i)return;const n=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");n&&this.ownerDocument.body.removeChild(n);const a=null===(t=null==A?void 0:A.detail)||void 0===t?void 0:t.nativeEvent;if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(e,e.link,a,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:A})}i.startsWith("md://")||i.startsWith("[[")?(async()=>{const e=i.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!e)return;let A=e.groups.link,t=null;if(A.search("#")>-1){const e=getLinkParts(A,this.file);t=`#${e.isBlockRef?"^":""}${e.ref}`,A=e.path}if(A.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);const n=app.metadataCache.getFirstLinkpathDest(A,this.file.path),r=a.shiftKey||a[CTRL_OR_CMD]||this.linksAlwaysOpenInANewPane||a.metaKey;if(r&&this.isFullscreen()&&this.exitFullscreen(),n)if(n===this.file){if(t)return void this.setEphemeralState({subpath:t});this.zoomToFit(!1)}else try{const e=r?a.metaKey&&!app.isMobile?app.workspace.openPopoutLeaf():getNewOrAdjacentLeaf(this.plugin,this.leaf):this.leaf;await e.openFile(n,t?{active:!1,eState:{subpath:t}}:{active:!1})}catch(e){new obsidian_module.Notice(e,4e3)}else new NewFileActions(this.plugin,A,r,!app.isMobile&&a.metaKey,this).open()})():window.open(i)},onLinkHover:(e,A)=>{if(e&&(this.plugin.settings.hoverPreviewWithoutCTRL||A[CTRL_OR_CMD])){B=A,B.ctrlKey=!0;const t=e.link;if(!t||""===t)return;if(t.startsWith("md://")||t.startsWith("[[")){const A=t.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!A)return;let i=A.groups.link;E(i,e)}}},onViewModeChange:e=>{var A,t;if(this.semaphores.viewunload||null===(t=null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===t||t.setExcalidrawViewMode(e),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(e,this,this.getHookServer())}catch(e){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:e})}}}),A.createElement(ToolsPanel,{ref:i,visible:!1,view:this,centerPointer:()=>{const e=this.excalidrawAPI;if(!u||!u.current||!e)return;const A=e.getAppState(),{width:t,height:i}=A;this.currentPosition=viewportCoordsToSceneCoords({clientX:t/2,clientY:i/2},A)}})),v=A.useRef(new ResizeObserver((e=>{if(!i||!i.current)return;const{width:A,height:t}=e[0].contentRect;if(0===A||0===t)return;const n=i.current.onRightEdge?i.current.previousWidth-A:0,a=i.current.onBottomEdge?i.current.previousHeight-t:0;i.current.updatePosition(a,n)})));return A.useEffect((()=>((null==i?void 0:i.current)&&v.current.observe(i.current.containerRef.current),()=>{v.current.unobserve(i.current.containerRef.current)})),[i,v]),A.createElement(A.Fragment,null,C)}));t.createRoot(this.contentEl).render(i)}updateContainerSize(e,A=!1){const t=this.excalidrawAPI;if(!t)return;const i=()=>{const A=e?t.getSceneElements().filter((A=>A.id===e&&"arrow"!==A.type)):t.getSceneElements().filter((e=>{var A;return"arrow"!==e.type&&(null===(A=e.boundElements)||void 0===A?void 0:A.map((e=>e.type)).includes("text"))}));A.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),t.updateContainerSize(A)),this.initialContainerSizeUpdate=!1};A?setTimeout((()=>i()),50):i()}zoomToFit(e=!0,A=!1){if(document.body.querySelector("div.modal-container"))return;const t=this.excalidrawAPI;if(!t||!this.excalidrawRef||this.semaphores.isEditingText)return;const i=this.plugin.settings.zoomToFitMaxLevel,n=t.getSceneElements().filter((e=>e.width<1e4&&e.height<1e4));app.isMobile&&n.length>1e3||n.length>2500?A&&t.scrollToContent():e?setTimeout((()=>t.zoomToFit(n,i,this.isFullscreen()?0:.05)),100):t.zoomToFit(n,i,this.isFullscreen()?0:.05)}async toggleTrayMode(){const e=this.excalidrawAPI;if(!e)return!1;const A=e.getAppState();e.updateScene({appState:{trayModeEnabled:!A.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!A.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(e,A,t=!0,i=!1,n=!1){let a=getTextElementsMatchingQuery(e.filter((e=>"text"===e.type)),A,i);if(0!==a.length){if(n){const A=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],e);A.length>0&&(a=A)}this.zoomToElements(t,a)}else new obsidian_module.Notice("I could not find a matching text element")}zoomToElements(e,A){const t=this.excalidrawAPI;if(!t)return;const i=this.plugin.settings.zoomToFitMaxLevel;e&&t.selectElements(A),t.zoomToFit(A,i,.05)}getViewSelectedElements(){var e;const A=this.excalidrawAPI;if(!A)return[];const t=null===(e=A.getAppState())||void 0===e?void 0:e.selectedElementIds;if(!t)return[];const i=Object.keys(t);if(!i)return[];const n=A.getSceneElements().filter((e=>i.includes(e.id))),a=n.filter((e=>e.boundElements&&e.boundElements.filter((e=>"text"===e.type)).length>0)).map((e=>e.boundElements.filter((e=>"text"===e.type)).map((e=>e.id))[0])),r=n.map((e=>e.id)).concat(a);return A.getSceneElements().filter((e=>r.contains(e.id)))}async copyLinkToSelectedElementToClipboard(e){const A=this.getViewSelectedElements();if(A.length<1)return void new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let t;if(2===A.length){const e=A.filter((e=>"text"===e.type));1===e.length&&e[0].containerId&&1===A.filter((e=>e.boundElements.some((e=>"text"===e.type)))).length&&(t=e[0].id)}t||(t=1===A.length?A[0].id:this.plugin.ea.getLargestElement(A).id);const i=await ScriptEngine.inputPrompt(app,"Set link alias","Leave empty if you do not want to set an alias","");navigator.clipboard.writeText(`[[${this.file.path}#^${e}${t}${i?`|${i}`:""}]]`),new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}updateScene(e,A=!1){const t=this.excalidrawAPI;if(!t)return;const i=e.elements&&A;i&&(e.elements=t.restore(e).elements);try{t.updateScene(e)}catch(A){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:A,scene:e,willDoSecondAttempt:!i}),i)warningUnknowSeriousError();else try{e.elements=t.restore(e).elements,t.updateScene(e)}catch(A){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:A,scene:e}),warningUnknowSeriousError()}}}}function getTextMode(e){return e.search("excalidraw-plugin: parsed\n")>-1||e.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,autosaveIntervalDesktop:15e3,autosaveIntervalMobile:1e4,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",isLeftHanded:!1,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",zoomToFitOnOpen:!0,zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",parseTODO:!1,todo:"☐",done:"🗹",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,removeTransclusionQuoteSigns:!0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!1,previousRelease:"0.0.0",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js",taskboneEnabled:!1,taskboneAPIkey:""};class ExcalidrawSettingTab extends obsidian_module.PluginSettingTab{constructor(e,A){super(e,A),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.reloadMathJax=!1,this.plugin=A}applySettingsUpdate(e=!1){e&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian_module.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestReloadDrawings){const e=app.workspace.getLeavesOfType("excalidraw");for(const A of e)A.view instanceof ExcalidrawView&&(await A.view.save(!1),await A.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var e;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:A}=this;this.containerEl.empty();const t=A.createDiv("coffee");t.addClass("ex-coffee-div"),t.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian_module.Setting(A).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showReleaseNotes).onChange((async e=>{this.plugin.settings.showReleaseNotes=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showNewVersionNotification).onChange((async e=>{this.plugin.settings.showNewVersionNotification=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async e=>{this.plugin.settings.folder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async e=>{this.plugin.settings.embedUseExcalidrawFolder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async e=>{this.plugin.settings.templateFilePath=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async e=>{this.plugin.settings.scriptFolderPath=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("SAVING_HEAD")}),new obsidian_module.Setting(A).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compress).onChange((async e=>{this.plugin.settings.compress=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("AUTOSAVE_INTERVAL_DESKTOP_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_DESKTOP_DESC"))).addDropdown((e=>e.addOption("15000","Frequent (every 15 seconds)").addOption("60000","Moderate (every 60 seconds)").addOption("300000","Rare (every 5 minutes)").addOption("900000","Practically never (every 15 minutes)").setValue(this.plugin.settings.autosaveIntervalDesktop.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalDesktop=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("AUTOSAVE_INTERVAL_MOBILE_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_MOBILE_DESC"))).addDropdown((e=>e.addOption("10000","Frequent (every 10 seconds)").addOption("30000","Moderate (every 30 seconds)").addOption("60000","Rare (every 1 minute)").addOption("300000","Practically never (every 5 minutes)").setValue(this.plugin.settings.autosaveIntervalMobile.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalMobile=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),A.createDiv("",(e=>{e.innerHTML=t$d("FILENAME_DESC")}));const i=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,n=A.createEl("p",{text:""});let a,r,s,o,l,c,d;n.innerHTML=i(),new obsidian_module.Setting(A).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((e=>e.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async A=>{this.plugin.settings.drawingFilenamePrefix=A.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenamePrefix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async e=>{this.plugin.settings.drawingEmbedPrefixWithFilename=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((e=>e.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async A=>{this.plugin.settings.drawingFilnameEmbedPostfix=A.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((e=>e.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async A=>{this.plugin.settings.drawingFilenameDateTime=A.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenameDateTime),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async e=>{this.plugin.settings.useExcalidrawExtension=e,n.innerHTML=i(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian_module.Setting(A).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.isLeftHanded).onChange((async e=>{this.plugin.settings.isLeftHanded=e,setLeftHandedMode(e),setTimeout((()=>setLeftHandedMode(e))),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchTheme).onChange((async e=>{this.plugin.settings.matchTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeAlways).onChange((async e=>{this.plugin.settings.matchThemeAlways=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeTrigger).onChange((async e=>{this.plugin.settings.matchThemeTrigger=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((e=>e.addOption("normal","Always in normal-mode").addOption("zen","Always in zen-mode").addOption("view","Always in view-mode").addOption("view-mobile","Usually normal, but view-mode on Phone").setValue(this.plugin.settings.defaultMode).onChange((async e=>{this.plugin.settings.defaultMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((e=>e.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async e=>{this.plugin.settings.defaultPenMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("ZOOM_TO_FIT_ONOPEN_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_ONOPEN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnOpen).onChange((async e=>{this.plugin.settings.zoomToFitOnOpen=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async e=>{this.plugin.settings.zoomToFitOnResize=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((e=>e.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async e=>{a.innerText=` ${e.toString()}`,this.plugin.settings.zoomToFitMaxLevel=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{a=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(e=>e.innerHTML=t$d("LINKS_DESC"))),new obsidian_module.Setting(A).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInAdjacentPane).onChange((async e=>{this.plugin.settings.openInAdjacentPane=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInMainWorkspace).onChange((async e=>{this.plugin.settings.openInMainWorkspace=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showLinkBrackets).onChange((e=>{this.plugin.settings.showLinkBrackets=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((e=>{this.plugin.settings.linkPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((e=>{this.plugin.settings.urlPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("PARSE_TODO_NAME")).setDesc(fragWithHTML(t$d("PARSE_TODO_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.parseTODO).onChange((e=>{this.plugin.settings.parseTODO=e,r.setDisabled(!e),s.setDisabled(!e),this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("TODO_NAME")).setDesc(fragWithHTML(t$d("TODO_DESC"))).addText((e=>{r=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.todo).onChange((e=>{this.plugin.settings.todo=e,this.applySettingsUpdate(!0)}))})),r.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(A).setName(t$d("DONE_NAME")).setDesc(fragWithHTML(t$d("DONE_DESC"))).setDisabled(!this.plugin.settings.parseTODO).addText((e=>{s=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.done).onChange((e=>{this.plugin.settings.done=e,this.applySettingsUpdate(!0)}))})),s.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(A).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((e=>e.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async e=>{o.innerText=` ${e.toString()}`,this.plugin.settings.linkOpacity=e,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(e=>{o=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian_module.Setting(A).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async e=>{this.plugin.settings.hoverPreviewWithoutCTRL=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowCtrlClick).onChange((async e=>{this.plugin.settings.allowCtrlClick=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.forceWrap).onChange((async e=>{this.plugin.settings.forceWrap=e,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian_module.Setting(A).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=t,e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(A).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=t,e.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(A).setName(t$d("QUOTE_TRANSCLUSION_REMOVE_NAME")).setDesc(fragWithHTML(t$d("QUOTE_TRANSCLUSION_REMOVE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.removeTransclusionQuoteSigns).onChange((e=>{this.plugin.settings.removeTransclusionQuoteSigns=e,this.requestEmbedUpdate=!0,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframelyAllowed).onChange((async e=>{this.plugin.settings.iframelyAllowed=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian_module.Setting(A).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=t,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(A).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=t,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(A).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),e.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((A=>{e.addOption(A.path,A.name)})),e.setValue(this.plugin.settings.mdFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=e,this.applySettingsUpdate(!0)}))})),new obsidian_module.Setting(A).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(A).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((e=>e.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=e,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian_module.Setting(A).setName(t$d("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_SVG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displaySVGInPreview).onChange((async e=>{this.plugin.settings.displaySVGInPreview=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async e=>{this.plugin.settings.displayExportedImageIfAvailable=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async e=>{this.plugin.settings.previewMatchObsidianTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((e=>e.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async e=>{this.plugin.settings.width=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(A).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async e=>{l=e,l.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?l.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?l.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),l.setValue(this.plugin.settings.embedType).onChange((async e=>{this.plugin.settings.embedType=e,this.applySettingsUpdate()}))})),new obsidian_module.Setting(A).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedWikiLink).onChange((async e=>{this.plugin.settings.embedWikiLink=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((e=>e.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async e=>{c.innerText=` ${e.toString()}`,this.plugin.settings.pngExportScale=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{c=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian_module.Setting(A).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithBackground).onChange((async e=>{this.plugin.settings.exportWithBackground=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(A).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((e=>e.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async e=>{d.innerText=` ${e.toString()}`,this.plugin.settings.exportPaddingSVG=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{d=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian_module.Setting(A).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithTheme).onChange((async e=>{this.plugin.settings.exportWithTheme=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian_module.Setting(A).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.keepInSync).onChange((async e=>{this.plugin.settings.keepInSync=e,this.applySettingsUpdate()}))));const h=e=>{let A=0;for(A=0;Ae.setValue(this.plugin.settings.autoexportSVG).onChange((async e=>{e?l.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("SVG")),this.plugin.settings.autoexportSVG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportPNG).onChange((async e=>{e?l.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("PNG")),this.plugin.settings.autoexportPNG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async e=>{this.plugin.settings.autoExportLightAndDark=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian_module.Setting(A).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compatibilityMode).onChange((async e=>{this.plugin.settings.compatibilityMode=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async e=>{this.plugin.settings.autoexportExcalidraw=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.syncExcalidraw).onChange((async e=>{this.plugin.settings.syncExcalidraw=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((e=>{e.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((e=>{this.plugin.settings.mathjaxSourceURL=e,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian_module.Setting(A).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.fieldSuggester).onChange((async e=>{this.plugin.settings.fieldSuggester=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalFileType).onChange((async e=>{this.plugin.settings.experimentalFileType=e,this.plugin.experimentalFileTypeDisplayToggle(e),this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async e=>{this.plugin.settings.experimentalFileTag=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalLivePreview).onChange((async e=>{this.plugin.settings.experimentalLivePreview=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((A=>{e.addOption(A.path,A.name)})),e.setValue(this.plugin.settings.experimantalFourthFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=e,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))})),this.containerEl.createEl("h2",{text:t$d("TASKBONE_HEAD")}),this.containerEl.createEl("p",{text:t$d("TASKBONE_DESC")}),new obsidian_module.Setting(A).setName(t$d("TASKBONE_ENABLE_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_ENABLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.taskboneEnabled).onChange((async e=>{if(u.setDisabled(!e),this.plugin.settings.taskboneEnabled=e,""===this.plugin.settings.taskboneAPIkey){const e=await this.plugin.taskbone.initialize(!1);e&&u.setValue(e)}this.applySettingsUpdate()})))),new obsidian_module.Setting(A).setName(t$d("TASKBONE_APIKEY_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_APIKEY_DESC"))).addText((e=>{u=e,u.setValue(this.plugin.settings.taskboneAPIkey).onChange((async e=>{this.plugin.settings.taskboneAPIkey=e,this.applySettingsUpdate()})).setDisabled(!this.plugin.settings.taskboneEnabled)}));const g=null===(e=this.plugin.scriptEngine.getListofScripts())||void 0===e?void 0:e.map((e=>this.plugin.scriptEngine.getScriptName(e)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&g){const e=(e,A)=>{const t=this.plugin.settings.scriptEngineSettings[e][A];return"object"==typeof t?t.height:null},t=(e,A)=>{const t=this.plugin.settings.scriptEngineSettings[e][A];return"object"==typeof t?t.value:t},i=(e,A,t)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[e][A]?this.plugin.settings.scriptEngineSettings[e][A].value=t:this.plugin.settings.scriptEngineSettings[e][A]=t},n=(e,n,a)=>{new obsidian_module.Setting(A).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addToggle((A=>A.setValue(t(e,n)).onChange((async A=>{i(e,n,A),this.applySettingsUpdate()}))))},a=(n,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian_module.Setting(A).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((e=>{s.forEach((A=>e.addOption(A.toString(),A.toString()))),e.setValue(t(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):e(n,a)?new obsidian_module.Setting(A).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((A=>{A.inputEl.style.minHeight=e(n,a),A.inputEl.style.minWidth="400px",A.setValue(t(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):new obsidian_module.Setting(A).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((e=>e.setValue(t(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))))},r=(e,n,a)=>{new obsidian_module.Setting(A).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addText((A=>A.setPlaceholder("Enter a number").setValue(t(e,n).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?A.setValue(t(e,n).toString()):(i(e,n,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((e=>g.contains(e))).forEach((e=>{const A=this.plugin.settings.scriptEngineSettings[e],t=Object.values(A);0===t.length||t.length>0&&0===t.map((e=>e.hidden?0:1)).reduce(((e,A)=>e+A))||(this.containerEl.createEl("h3",{text:e}),Object.keys(A).forEach((t=>{var i;const s=A[t];switch(typeof(null!==(i=s.value)&&void 0!==i?i:s)){case"boolean":s.hidden||n(e,t,s.description);break;case"string":s.hidden||a(e,t,s.description,s.valueset);break;case"number":s.hidden||r(e,t,s.description)}})))}))}}}var openDialogAction;!function(e){e[e.openFile=0]="openFile",e[e.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian_module.FuzzySuggestModal{constructor(e,A){super(e),this.app=e,this.action=openDialogAction.openFile,this.plugin=A,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=e=>{"Enter"==e.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(e,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(e)}}start(e,A){switch(this.action=e,this.onNewPane=A,e){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e),this.app=e,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((e=>!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path+(e.alias?`|${e.alias}`:"")}onChooseItem(e){let A=e.path;e.file&&(A=this.app.metadataCache.fileToLinktext(e.file,this.drawingPath,!0)),this.addText(`[[${A+(e.alias?`|${e.alias}`:"")}]]`)}start(e,A){this.addText=A,this.drawingPath=e,this.open()}}class InsertImageDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE_WITH_OPTION_TO_SCALE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH"),this.inputEl.onkeyup=e=>{"Enter"===e.key&&e.altKey&&this.chooser.values&&(this.onChooseItem(this.chooser.values[this.chooser.selectedItem].item,new KeyboardEvent("keypress",{altKey:!0})),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>(IMAGE_TYPES.contains(e.extension)||this.plugin.isExcalidrawFile(e))&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}onChooseItem(e,A){const t=this.plugin.ea;t.reset(),t.setView(this.view),t.canvas.theme=this.view.excalidrawAPI.getAppState().theme,(async()=>{await t.addImage(0,0,e,!A.altKey),t.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}class ImportSVGDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"svg"===e.extension&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}async onChooseItem(e,A){if(!e)return;const t=this.plugin.ea;t.reset(),t.setView(this.view);const i=await app.vault.read(e);i&&""!==i&&(t.importSVG(i),t.addElementsToView(!0,!0,!0))}start(e){this.view=e,this.open()}}class InsertMDDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"md"===e.extension&&!this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){const A=this.plugin.ea;A.reset(),A.setView(this.view),(async()=>{await A.addImage(0,0,e),A.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}function around(e,A){const t=Object.keys(A).map((t=>around1(e,t,A[t])));return 1===t.length?t[0]:function(){t.forEach((e=>e()))}}function around1(e,A,t){const i=e[A],n=e.hasOwnProperty(A);let a=t(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(r,a),e[A]=r,s;function r(...t){return a===i&&e[A]===r&&s(),a.apply(this,t)}function s(){e[A]===r&&(n?e[A]=i:delete e[A]),a!==i&&(a=i,Object.setPrototypeOf(r,i||Function))}}let plugin$1,vault$1,metadataCache$1;const getDefaultWidth$1=e=>{const A=parseInt(e.settings.width);return isNaN(A)||0===A||null===A?"400":e.settings.width},initializeMarkdownPostProcessor=e=>{plugin$1=e,vault$1=e.app.vault,metadataCache$1=e.app.metadataCache},getIMG$1=async(e,A=!1)=>{var t;let i=e.file;if(!e.file){const A=vault$1.getAbstractFileByPath(null===(t=e.fname)||void 0===t?void 0:t.split("#")[0]);if(!(A&&A instanceof obsidian_module.TFile))return null;i=A}const n=getEmbeddedFilenameParts(e.fname);e.style=e.style.replaceAll(" ","-");const a=hasExportTheme(plugin$1,i)?getExportTheme(plugin$1,i,"light"):void 0,r={withBackground:getWithBackground(plugin$1,i),withTheme:!!a||plugin$1.settings.exportWithTheme},s=createEl("img");let o=`max-width:${e.fwidth}${e.fwidth.match(/\d$/)?"px":""}; `;e.fheight&&(o+=`height:${e.fheight}px;`),A||s.setAttribute("style",o),s.addClass(e.style);const l=null!=a?a:plugin$1.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin$1.settings.exportWithTheme?void 0:"light";l&&(r.withTheme=!0);const c=new EmbeddedFilesLoader(plugin$1,l?"dark"===l:void 0);if(!plugin$1.settings.displaySVGInPreview){const A=parseInt(e.fwidth),t=A>=2400?5:A>=1800?4:A>=1200?3:A>=600?2:1,a=n.hasGroupref?void 0:await getQuickImagePreview(plugin$1,i.path,"png"),o=null!=a?a:await createPNG(n.hasGroupref?n.filepath+n.linkpartReference:i.path,t,r,c,l,null,null,[],plugin$1,0);return o?(s.src=URL.createObjectURL(o),s):null}if(!n.hasBlockref&&!n.hasSectionref){const e=await getQuickImagePreview(plugin$1,i.path,"svg");if(e)return s.setAttribute("src",svgToBase64(e)),s}const d=(await createSVG(n.hasGroupref||n.hasBlockref||n.hasSectionref?n.filepath+n.linkpartReference:i.path,!0,r,c,l,null,null,[],plugin$1,0,getExportPadding(plugin$1,i))).outerHTML;let h=null;const u=document.createElement("div");u.innerHTML=d;const g=u.firstChild;return g instanceof SVGSVGElement&&(h=g),h?(h=embedFontsInSVG(h,plugin$1),s.setAttribute("src",svgToBase64(h.outerHTML)),s):null},createImgElement=async(e,A=!1)=>{const t=await getIMG$1(e,A);let i;t.setAttribute("fileSource",e.fname),e.fwidth&&t.setAttribute("w",e.fwidth),e.fheight&&t.setAttribute("h",e.fheight),t.setAttribute("draggable","false"),t.setAttribute("onCanvas",A?"true":"false");const n=e=>{if(e.target instanceof Element&&"img"!=e.target.tagName.toLowerCase())return;const A=t.getAttribute("fileSource");if(A){const t=A.match(/([^#]*)(.*)/);if(!t)return;plugin$1.openDrawing(vault$1.getAbstractFileByPath(t[1]),e[CTRL_OR_CMD]?"new-pane":e.metaKey&&!app.isMobile?"popout-window":"active-pane",!0,t[2])}};return t.addEventListener("pointerdown",(e=>{var A;(null===(A=null==t?void 0:t.parentElement)||void 0===A?void 0:A.hasClass("canvas-node-content"))||(i=setTimeout((()=>n(e)),500))})),t.addEventListener("pointerup",(()=>{i&&clearTimeout(i),i=null})),t.addEventListener("dblclick",n),t.addEventListener(RERENDER_EVENT,(async e=>{e.stopPropagation();const A=t.parentElement,i=t.style.maxWidth,n=t.style.maxHeight,a=t.getAttribute("fileSource"),r="true"===t.getAttribute("onCanvas"),s=await createImgElement({fname:a,fwidth:t.getAttribute("w"),fheight:t.getAttribute("h"),style:t.getAttribute("class")},r);A.empty(),r||(s.style.maxHeight=n,s.style.maxWidth=i),s.setAttribute("fileSource",a),A.append(s)})),t},createImageDiv$1=async(e,A=!1)=>{const t=await createImgElement(e,A);return createDiv(e.style,(e=>e.append(t)))},processReadingMode$1=async(e,A)=>{var t;for(const i of e){const e=null===(t=i.getAttribute("src"))||void 0===t?void 0:t.split("#")[0];if(!e)continue;const n=metadataCache$1.getFirstLinkpathDest(e,A.sourcePath);if(n&&n instanceof obsidian_module.TFile&&plugin$1.isExcalidrawFile(n)){if(isTextOnlyEmbed$1(i))continue;i.parentElement.replaceChild(await processInternalEmbed$1(i,n),i)}}},processInternalEmbed$1=async(e,A)=>{const t={fname:"",fheight:"",fwidth:"",style:""},i=e.getAttribute("src");if(!i)return;t.fwidth=e.getAttribute("width")?e.getAttribute("width"):getDefaultWidth$1(plugin$1),t.fheight=e.getAttribute("height");let n=e.getAttribute("alt");t.style="excalidraw-svg",processAltText$1(i.split("#")[0],n,t);const a=getEmbeddedFilenameParts(i);return t.fname=(null==A?void 0:A.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),t.file=A,await createImageDiv$1(t)},processAltText$1=(e,A,t)=>{var i,n;if(A&&!A.startsWith(e)){const a=A.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);t.fwidth=null!==(i=a[2])&&void 0!==i?i:t.fwidth,t.fheight=null!==(n=a[3])&&void 0!==n?n:t.fheight,a[4]&&!a[4].startsWith(e)&&(t.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(t.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed$1=e=>{const A=e.getAttribute("src");if(!A)return!0;const t=getEmbeddedFilenameParts(A);return!(t.hasArearef||t.hasGroupref)&&(t.hasBlockref||t.hasSectionref)},tmpObsidianWYSIWYG$1=async(e,A)=>{const t=app.vault.getAbstractFileByPath(A.sourcePath);if(!(t instanceof obsidian_module.TFile))return;if(!plugin$1.isExcalidrawFile(t))return;if(A.remainingNestLevel<4)return;const i=A.containerEl;let n=i;for(;!n.hasClass("dataview")&&!n.hasClass("cm-preview-code-block")&&!n.hasClass("cm-embed-block")&&!n.hasClass("internal-embed")&&!n.hasClass("markdown-reading-view")&&!n.hasClass("markdown-embed")&&n.parentElement;)n=n.parentElement;if(n.hasClass("dataview")||n.hasClass("cm-preview-code-block")||n.hasClass("cm-embed-block"))return;const a={fname:A.sourcePath,fheight:"",fwidth:getDefaultWidth$1(plugin$1),style:"excalidraw-svg"};a.file=t;const r=n.hasClass("markdown-embed"),s=n.hasClass("markdown-reading-view");if(!n.hasClass("internal-embed")&&(r||s)){const A=Boolean(e.querySelector(".frontmatter"));if(e.empty(),!A)return void(e.parentElement===i&&i.removeChild(e));n.empty();const t=n.hasClass("canvas-node-content"),s=await createImageDiv$1(a,t);return r?(t&&(n.removeClass("markdown-embed"),n.addClass("media-embed"),n.addClass("image-embed")),!t&&s.firstChild instanceof HTMLElement&&(s.firstChild.style.maxHeight="100%",s.firstChild.style.maxWidth=null),void n.appendChild(s.firstChild)):void n.appendChild(s)}if(isTextOnlyEmbed$1(n))return;if(e.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const o=await processInternalEmbed$1(n,t);n.appendChild(o);let l=null;const c=new MutationObserver((e=>{var A;["alt","width","height"].contains(null===(A=e[0])||void 0===A?void 0:A.attributeName)&&(l&&clearTimeout(l),l=setTimeout((async()=>{l=null,n.empty();const e=await processInternalEmbed$1(n,t);n.appendChild(e)}),500))}));c.observe(n,{attributes:!0})},markdownPostProcessor=async(e,A)=>{var t;const i=e.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(t=A.frontmatter)||void 0===t?void 0:t.hasOwnProperty("excalidraw-plugin"))?e.style.display="none":await processReadingMode$1(i,A):tmpObsidianWYSIWYG$1(e,A)},hoverEvent=e=>{e.linktext?(plugin$1.hover.linkText=e.linktext,plugin$1.hover.sourcePath=e.sourcePath):plugin$1.hover.linkText=null},observer=new MutationObserver((async e=>{if(0==e.length)return;if(!plugin$1.hover.linkText)return;const A=metadataCache$1.getFirstLinkpathDest(plugin$1.hover.linkText,plugin$1.hover.sourcePath?plugin$1.hover.sourcePath:"");if(!A)return;if(!(A instanceof obsidian_module.TFile))return;if("excalidraw"!==A.extension)return;const t=getIMGFilename(A.path,"svg"),i=vault$1.getAbstractFileByPath(t);if(i&&i instanceof obsidian_module.TFile)return;const n=getIMGFilename(A.path,"png"),a=vault$1.getAbstractFileByPath(n);if(a&&a instanceof obsidian_module.TFile)return;if(!plugin$1.hover.linkText)return;if(1!=e.length)return;if(1!=e[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!e[0].addedNodes[0].classNames)return;const r=e[0].addedNodes[0];r.empty();const s=await getIMG$1({file:A,fname:A.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async e=>{e.appendChild(s),e.setAttribute("src",A.path),e.onClickEvent((A=>{A.stopImmediatePropagation();const t=e.getAttribute("src");t&&plugin$1.openDrawing(vault$1.getAbstractFileByPath(t),A[CTRL_OR_CMD]?"new-pane":A.metaKey&&!app.isMobile?"popout-window":"active-pane")}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.roundness",code:"[null | { type: RoundnessType; value?: number };]",desc:"set to null for 'sharp', else the stroke will be 'round'
type: 1==LEGACY,
2==PROPORTIONAL RADIUS,
3==ADAPTIVE RADIUS, value: adaptive factor defaults to 32",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toCliboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: string; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile, scale: boolean): Promise;",desc:"set scale to false if you want to embed the image at 100% of its original size. Default is true which will insert a scaled image",after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[]):void;",desc:"Elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""},{field:"obsidian",code:"obsidian",desc:"Access functions and objects available on the Obsidian Module",after:""},{field:"setViewModeEnabled",code:"setViewModeEnabled(enabled: boolean): void;",desc:"Sets Excalidraw in the targetView to view-mode",after:""},{field:"viewUpdateScene",code:"viewUpdateScene(scene:{elements?:ExcalidrawElement[],appState?: AppState,files?: BinaryFileData,commitToHistory?: boolean,},restore:boolean=false):void",desc:"Calls the ExcalidrawAPI updateScene function for the targetView. When restore=true, excalidraw will try to correct errors in the scene such as setting default values to missing element properties.",after:""},{field:"viewZoomToElements",code:"viewZoomToElements(selectElements: boolean,elements: ExcalidrawElement[]):void",desc:"Zoom tarteView to fit elements provided as input. elements === [] will zoom to fit the entire scene. SelectElements toggles whether the elements should be in a selected state at the end of the operation.",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: [{caption:string, action:Function}]);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""},{field:"scriptFile",code:"scriptFile: TFile",desc:"The TFile of the currently running script",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"}];class FieldSuggester extends obsidian_module.EditorSuggest{constructor(e){super(e.app),this.getSuggestions=e=>{const A=e.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((e=>e.field)).filter((e=>e.toLowerCase().includes(A)))},this.plugin=e}onTrigger(e,A,t){var i,n,a,r,s;if(this.plugin.settings.fieldSuggester){const t=A.getLine(e.line).substring(0,e.ch),o=null!==(r=null!==(n=null===(i=t.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=t.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=t.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=t.match(/^excalidraw-(.*)$/)?"excalidraw":t.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:e,start:{ch:e.ch-o.length,line:e.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(e,A){const t=e.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((A=>A.field===e));A.createEl("b",{text:t}),A.createEl("br"),i.code&&A.createEl("code",{text:i.code}),i.desc&&A.createDiv("div",(e=>e.innerHTML=i.desc))}selectSuggestion(e){var A;const{context:t}=this;if(t){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${e}${null===(A=i.find((A=>A.field===e)))||void 0===A?void 0:A.after}`;if(t.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const e=this.latestTriggerInfo.end;e.ch+=n.length,t.editor.setCursor(e)}}}}class FrontmatterEditor{constructor(e){this.initialized=!1,this.dataWOfrontmatter=e;const A=(e=e.replaceAll("\r\n","\n").replaceAll("\r","\n")).split(/^---(?:.|\n)*(?:^---\n)/gm);2===A.length&&(this.dataWOfrontmatter=A[1],this.frontmatterStr=e.match(/^---((?:.|\n)*)(?:^---\n)/gm)[0].replaceAll(/(^---\n|^\n)/gm,"").trim()+"\n",this.initialized=!0)}hasKey(e){if(!this.initialized)return!1;const A=new RegExp(`^${e}:`,"gm");return Boolean(this.frontmatterStr.match(A))}setKey(e,A){if(this.initialized)if(A=A.replaceAll("\r\n","\n").replaceAll("\r","\n").replaceAll(":",";").trim().split("\n").join(" "),this.hasKey(e)){const t=new RegExp(`^${e}:.*\\n(?:\\s\\s.*\\n)*`,"gm");this.frontmatterStr=this.frontmatterStr.split(t).join("\n").trim()+`\n${e}: ${A}`}else this.frontmatterStr=this.frontmatterStr.trim()+`\n${e}: ${A}`}get data(){return this.initialized?["---",this.frontmatterStr,"---",this.dataWOfrontmatter].join("\n"):this.dataWOfrontmatter}}const TASKBONE_URL="https://api.taskbone.com/",TASKBONE_OCR_FN="execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb";class Taskbone{constructor(e){this.plugin=e}get apiKey(){return this.plugin.settings.taskboneAPIkey}async initialize(e=!0){var A;if(""!==this.plugin.settings.taskboneAPIkey)return;const t=await obsidian_module.requestUrl({url:`${TASKBONE_URL}users/excalidraw-obsidian/identities`,method:"post",contentType:"application/json",throw:!1});if(!t)return;const i=null===(A=t.json)||void 0===A?void 0:A.apiKey;return i&&"string"==typeof i&&(e&&await this.plugin.loadSettings(),this.plugin.settings.taskboneAPIkey=i,e&&await this.plugin.saveSettings()),i}async getTextForView(e,A){await e.forceSave(!0);const t=e.excalidrawAPI.getSceneElements().filter((A=>{var t;return"freedraw"===A.type||"image"===A.type&&!this.plugin.isExcalidrawFile(null===(t=e.excalidrawData.getFile(A.fileId))||void 0===t?void 0:t.file)}));if(0===t.length)return void new obsidian_module.Notice("Aborting OCR because there are no image or freedraw elements on the canvas.",4e3);const i=new FrontmatterEditor(e.data);if(i.hasKey("taskbone-ocr")&&!A)return void new obsidian_module.Notice("The drawing has already been processed, you will find the result in the frontmatter in markdown view mode. If you ran the command from the Obsidian Panel in Excalidraw then you can CTRL(CMD)+click the command to force the rescaning.",4e3);const n=this.plugin.ea.getBoundingBox(t),a=n.width*n.height,r=Math.sqrt(36e4/a),s=Math.sqrt(a/16e6),o=r>1?r:s>1?1/s:1,l=new EmbeddedFilesLoader(this.plugin,!1),c=await createPNG(e.file.path+"#^taskbone",o,{withBackground:!0,withTheme:!0},l,"light",null,null,[],this.plugin,0),d=await this.getTextForImage(c);d&&(i.setKey("taskbone-ocr",d),e.data=i.data,e.save(!1),window.navigator.clipboard.writeText(d),new obsidian_module.Notice("I placed the recognized in the drawing's frontmatter and onto the system clipboard."))}async getTextForImage(e){""===this.apiKey&&await this.initialize();const A={records:[{image:await this.blobToBase64(e)}]},t=await obsidian_module.requestUrl({url:"https://api.taskbone.com/execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb",method:"post",contentType:"application/json",body:JSON.stringify(A),headers:{authorization:`Bearer ${this.apiKey}`},throw:!1}),i=null==t?void 0:t.json;return i&&200===t.status?i.records[0].text:(new obsidian_module.Notice("Something went wrong while processing your request. Please check developer console for more information"),void log(t))}async blobToBase64(e){const A=await e.arrayBuffer(),t=new Uint8Array(A);for(var i="",n=t.byteLength,a=0;a{const A=parseInt(e.settings.width);return isNaN(A)||0===A||null===A?"400":e.settings.width},initializeMarkdownPostProcessor_Legacy=e=>{plugin=e,vault=e.app.vault,metadataCache=e.app.metadataCache},getIMG=async e=>{var A;let t=e.file;if(!e.file){const i=vault.getAbstractFileByPath(null===(A=e.fname)||void 0===A?void 0:A.split("#")[0]);if(!(i&&i instanceof obsidian_module.TFile))return null;t=i}const i=getEmbeddedFilenameParts(e.fname);e.style=e.style.replaceAll(" ","-");const n=hasExportTheme(plugin,t)?getExportTheme(plugin,t,"light"):void 0,a={withBackground:getWithBackground(plugin,t),withTheme:!!n||plugin.settings.exportWithTheme},r=createEl("img");let s=`max-width:${e.fwidth}px; width:100%;`;e.fheight&&(s+=`height:${e.fheight}px;`),r.setAttribute("style",s),r.addClass(e.style);const o=null!=n?n:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";o&&(a.withTheme=!0);const l=new EmbeddedFilesLoader(plugin,o?"dark"===o:void 0);if(!plugin.settings.displaySVGInPreview){const A=parseInt(e.fwidth),n=A>=2400?5:A>=1800?4:A>=1200?3:A>=600?2:1,s=i.hasGroupref?void 0:await getQuickImagePreview(plugin,t.path,"png"),c=null!=s?s:await createPNG(i.hasGroupref?i.filepath+i.linkpartReference:t.path,n,a,l,o,null,null,[],plugin,0);return c?(r.src=URL.createObjectURL(c),r):null}if(!i.hasBlockref&&!i.hasSectionref){const e=await getQuickImagePreview(plugin,t.path,"svg");if(e)return r.setAttribute("src",svgToBase64(e)),r}const c=(await createSVG(i.hasGroupref||i.hasBlockref||i.hasSectionref?i.filepath+i.linkpartReference:t.path,!0,a,l,o,null,null,[],plugin,0,getExportPadding(plugin,t))).outerHTML;let d=null;const h=document.createElement("div");h.innerHTML=c;const u=h.firstChild;return u instanceof SVGSVGElement&&(d=u),d?(d=embedFontsInSVG(d,plugin),d.removeAttribute("width"),d.removeAttribute("height"),r.setAttribute("src",svgToBase64(d.outerHTML)),r):null},createImageDiv=async e=>{const A=await getIMG(e);return createDiv(e.style,(t=>{let i;t.append(A),t.setAttribute("src",e.fname),e.fwidth&&t.setAttribute("w",e.fwidth),e.fheight&&t.setAttribute("h",e.fheight);const n=e=>{if(e.target instanceof Element&&"img"!=e.target.tagName.toLowerCase())return;const A=t.getAttribute("src");if(A){const t=A.match(/([^#]*)(.*)/);if(!t)return;plugin.openDrawing(vault.getAbstractFileByPath(t[1]),e[CTRL_OR_CMD]?"new-pane":e.metaKey&&!app.isMobile?"popout-window":"active-pane",!0,t[2])}};t.addEventListener("pointerdown",(e=>{i=setTimeout((()=>n(e)),500)})),t.addEventListener("pointerup",(()=>{i&&clearTimeout(i),i=null})),t.addEventListener("dblclick",n),t.addEventListener(RERENDER_EVENT,(async e=>{e.stopPropagation(),t.empty();const A=await getIMG({fname:t.getAttribute("src"),fwidth:t.getAttribute("w"),fheight:t.getAttribute("h"),style:t.getAttribute("class")});t.append(A)}))}))},processReadingMode=async(e,A)=>{var t;for(const i of e){const e=null===(t=i.getAttribute("src"))||void 0===t?void 0:t.split("#")[0];if(!e)continue;const n=metadataCache.getFirstLinkpathDest(e,A.sourcePath);if(n&&n instanceof obsidian_module.TFile&&plugin.isExcalidrawFile(n)){if(isTextOnlyEmbed(i))continue;i.parentElement.replaceChild(await processInternalEmbed(i,n),i)}}},processInternalEmbed=async(e,A)=>{const t={fname:"",fheight:"",fwidth:"",style:""},i=e.getAttribute("src");if(!i)return;t.fwidth=e.getAttribute("width")?e.getAttribute("width"):getDefaultWidth(plugin),t.fheight=e.getAttribute("height");let n=e.getAttribute("alt");t.style="excalidraw-svg",processAltText(i.split("#")[0],n,t);const a=getEmbeddedFilenameParts(i);return t.fname=(null==A?void 0:A.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),t.file=A,await createImageDiv(t)},processAltText=(e,A,t)=>{var i,n;if(A&&!A.startsWith(e)){const a=A.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);t.fwidth=null!==(i=a[2])&&void 0!==i?i:t.fwidth,t.fheight=null!==(n=a[3])&&void 0!==n?n:t.fheight,a[4]&&!a[4].startsWith(e)&&(t.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(t.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=e=>{const A=e.getAttribute("src");if(!A)return!0;const t=getEmbeddedFilenameParts(A);return!(t.hasArearef||t.hasGroupref)&&(t.hasBlockref||t.hasSectionref)},tmpObsidianWYSIWYG=async(e,A)=>{const t=app.vault.getAbstractFileByPath(A.sourcePath);t instanceof obsidian_module.TFile&&plugin.isExcalidrawFile(t)&&(A.remainingNestLevel<4||setTimeout((async()=>{let i=0;for(;!e.parentElement&&i++<=50;)await sleep(50);if(!e.parentElement)return;let n=e;for(;!n.hasClass("dataview")&&!n.hasClass("cm-preview-code-block")&&!n.hasClass("cm-embed-block")&&!n.hasClass("internal-embed")&&n.parentElement;)n=n.parentElement;if(n.hasClass("dataview")||n.hasClass("cm-preview-code-block")||n.hasClass("cm-embed-block"))return;const a={fname:A.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};if(a.file=t,!n.hasClass("internal-embed")){e.empty();const A=e.parentElement;if(!A.hasClass("markdown-preview-section"))return;if(A.hasAttribute("ready"))return void A.removeChild(e);A.setAttribute("ready","");const t=await createImageDiv(a);return void e.appendChild(t)}if(isTextOnlyEmbed(n))return;if(e.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const r=await processInternalEmbed(n,t);n.appendChild(r);let s=null;const o=new MutationObserver((e=>{var A;["alt","width","height"].contains(null===(A=e[0])||void 0===A?void 0:A.attributeName)&&(s&&clearTimeout(s),s=setTimeout((async()=>{s=null,n.empty();const e=await processInternalEmbed(n,t);n.appendChild(e)}),500))}));o.observe(n,{attributes:!0})})))},markdownPostProcessor_Legacy=async(e,A)=>{var t;const i=e.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(t=A.frontmatter)||void 0===t?void 0:t.hasOwnProperty("excalidraw-plugin"))?e.style.display="none":await processReadingMode(i,A):tmpObsidianWYSIWYG(e,A)},hoverEvent_Legacy=e=>{e.linktext?(plugin.hover.linkText=e.linktext,plugin.hover.sourcePath=e.sourcePath):plugin.hover.linkText=null},observer_Legacy=new MutationObserver((async e=>{if(0==e.length)return;if(!plugin.hover.linkText)return;const A=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!A)return;if(!(A instanceof obsidian_module.TFile))return;if("excalidraw"!==A.extension)return;const t=getIMGFilename(A.path,"svg"),i=vault.getAbstractFileByPath(t);if(i&&i instanceof obsidian_module.TFile)return;const n=getIMGFilename(A.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian_module.TFile)return;if(!plugin.hover.linkText)return;if(1!=e.length)return;if(1!=e[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!e[0].addedNodes[0].classNames)return;const r=e[0].addedNodes[0];r.empty();const s=await getIMG({file:A,fname:A.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async e=>{e.appendChild(s),e.setAttribute("src",A.path),e.onClickEvent((A=>{A.stopImmediatePropagation();const t=e.getAttribute("src");t&&plugin.openDrawing(vault.getAbstractFileByPath(t),A[CTRL_OR_CMD]?"new-pane":A.metaKey&&!app.isMobile?"popout-window":"active-pane")}))}));r.appendChild(o)}));class ExcalidrawPlugin extends obsidian_module.Plugin{constructor(e,A){super(e,A),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(e){if(e===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(e))return this.packageMap.get(e);const{react:A,reactDOM:t,excalidrawLib:i}=e.eval.call(e,`(function() {\n ${lzString.exports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(e,{react:A,reactDOM:t,excalidrawLib:i}),{react:A,reactDOM:t,excalidrawLib:i}}async onload(){if(this.device={isDesktop:!document.body.hasClass("is-tablet")&&!document.body.hasClass("is-mobile"),isPhone:document.body.hasClass("is-phone"),isTablet:document.body.hasClass("is-tablet"),isMobile:document.body.hasClass("is-mobile"),isLinux:document.body.hasClass("mod-linux")&&!document.body.hasClass("is-android"),isMacOS:document.body.hasClass("mod-macos")&&!document.body.hasClass("is-ios"),isWindows:document.body.hasClass("mod-windows"),isIOS:document.body.hasClass("is-ios"),isAndroid:document.body.hasClass("is-android")},obsidian_module.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian_module.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian_module.addIcon("save-png",PNG_ICON),obsidian_module.addIcon("save-svg",SVG_ICON),await this.loadSettings({reEnableAutosave:!0}),this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(e=>new ExcalidrawView(e,this))),this.registerExtensions(["excalidraw"],"excalidraw"),obsidian_module.requireApiVersion("1.1.6")?this.addMarkdownPostProcessor():this.addLegacyMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const e="0.0.0"===this.settings.previousRelease;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,e?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const e=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(e)})),this.taskbone=new Taskbone(this)}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const e=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),A=""===e.dataURL?VIRGIL_DATAURL:e.dataURL;this.fourthFontDef=e.fontDef;const t=new Set;app.workspace.iterateAllLeaves((e=>{const i=app.isMobile?document:e.view.containerEl.ownerDocument;if(!i)return;if(t.has(i))return;t.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${A}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const e=this;this.app.workspace.onLayoutReady((async()=>{await obsidian_module.loadMathJax();try{e.mathjaxDiv&&(document.body.removeChild(e.mathjaxDiv),e.mathjax=null,e.mathjaxLoaderFinished=!1),e.mathjaxDiv=document.body.createDiv(),e.mathjaxDiv.title="Excalidraw MathJax Support",e.mathjaxDiv.style.display="none";const A=e.mathjaxDiv.createEl("iframe");A.title="Excalidraw MathJax Support";const t=A.contentWindow.document,i=t.createElement("script");i.type="text/javascript",i.onload=()=>{const t=A.contentWindow;t.MathJax.startup.pagePromise.then((async()=>{const A=app.vault.getAbstractFileByPath("preamble.sty"),i=A&&A instanceof obsidian_module.TFile?await app.vault.read(A):null;try{i&&await t.MathJax.tex2svg(i)}catch(A){errorlog({where:e.loadMathJax,description:"Unexpected error while loading preamble.sty",error:A})}e.mathjax=t.MathJax,e.mathjaxLoaderFinished=!0}))},i.src=e.settings.mathjaxSourceURL,t.head.appendChild(i)}catch(A){new obsidian_module.Notice("Excalidraw: Error initializing LaTeX support"),e.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const e=this;this.app.workspace.onLayoutReady((()=>{let A;for(A of app.workspace.getLeavesOfType("markdown"))A.view instanceof obsidian_module.MarkdownView&&e.isExcalidrawFile(A.view.file)&&(e.excalidrawFileModes[A.id||A.view.file.path]="excalidraw",e.setExcalidrawView(A))}))}forceSaveActiveView(e){if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.forceSave(),!0)}registerInstallCodeblockProcessor(){const e=async(e,A)=>{let t=null;try{const e=A.parentElement.querySelector(`a[href="#${A.previousElementSibling.getAttribute("data-heading")}"]`);e.style.paddingRight="10px",t=e.parentElement.createEl("button",null,(e=>{e.setText(t$d("UPDATE_SCRIPT")),e.addClass("mod-cta"),e.style.backgroundColor="var(--interactive-success)",e.style.display="none"}))}catch(A){errorlog({where:"this.registerInstallCodeblockProcessor",source:e,error:A})}e=e.trim(),A.createEl("button",null,(async A=>{const i=e=>{switch(t&&(t.style.display="none"),e){case"CHECKING":A.setText(t$d("CHECKING_SCRIPT")),A.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":A.setText(t$d("INSTALL_SCRIPT")),A.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":A.setText(t$d("UPTODATE_SCRIPT")),A.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":A.setText(t$d("UPDATE_SCRIPT")),A.style.backgroundColor="var(--interactive-success)",t&&(t.style.display=null);break;case"ERROR":A.setText(t$d("UNABLETOCHECK_SCRIPT")),A.style.backgroundColor="var(--interactive-normal)"}};A.addClass("mod-cta");let n=e;try{n=decodeURI(e)}catch(A){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:e,error:A})}const a=n.substring(n.lastIndexOf("/")+1),r=`${this.settings.scriptFolderPath}/Downloaded`,s=`${r}/${a}`,o=getIMGFilename(s,"svg");let l=this.app.vault.getAbstractFileByPath(s),c=this.app.vault.getAbstractFileByPath(o);if(i(l?"CHECKING":"INSTALL"),A.onclick=async()=>{const A=async(e,A,t)=>{const i=await obsidian_module.request({url:e});return!i||i.startsWith("404: Not Found")?null:(A?await this.app.vault.modify(A,i):(await checkAndCreateFolder(r),A=await this.app.vault.create(t,i)),A)};try{if(l=await A(e,l,s),!l)throw i("ERROR"),"File not found";c=await A(getIMGFilename(e,"svg"),c,o),i("UPTODATE"),new obsidian_module.Notice(`Installed: ${l.basename}`)}catch(e){new obsidian_module.Notice(`Error installing script: ${a}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:e})}},t&&(t.onclick=A.onclick),!(l&&l instanceof obsidian_module.TFile))return;const d=new Map;JSON.parse(await obsidian_module.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((e=>d.set(e.fname,e.mtime)));const h=(e,A)=>{if(0===d.size||!d.has(e))return"ERROR";const t=d.get(e);return!A||t>A.stat.mtime?"UPDATE":"UPTODATE"},u=h(a,l),g=h(getIMGFilename(a,"svg"),c&&c instanceof obsidian_module.TFile?c:null);i("UPTODATE"===u&&"UPTODATE"===g||"UPTODATE"===u&&"ERROR"===g?"UPTODATE":"ERROR"===u?"ERROR":"UPDATE"===u||"UPDATE"===g?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(A,t)=>{t.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),t.empty(),e(A,t)})),e(A,t)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addLegacyMarkdownPostProcessor(){initializeMarkdownPostProcessor_Legacy(this),this.registerMarkdownPostProcessor(markdownPostProcessor_Legacy),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent_Legacy)),this.observer=observer_Legacy,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async e=>{var A,t,i,n,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(A=e[0])||void 0===A?void 0:A.oldValue)===(null===(i=null===(t=e[0])||void 0===t?void 0:t.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=e[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=e[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{const A=e.view;A.file&&A.excalidrawRef&&A.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(e){e?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const e=e=>{if(1!=e.childElementCount)return;const A=e.getAttribute("data-path");if(!A)return;const t=this.app.vault.getAbstractFileByPath(A);t&&t instanceof obsidian_module.TFile&&this.isExcalidrawFile(t)&&e.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),e.firstChild)};this.fileExplorerObserver=new MutationObserver((A=>{const t=A.filter((e=>e.addedNodes.length>0));t.forEach((A=>{A.addedNodes.forEach((A=>{A instanceof Element&&A.querySelectorAll(".nav-file-title").forEach(e)}))}))}));const A=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(e),A.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.importSVGDialog=new ImportSVGDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async e=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),e[CTRL_OR_CMD]?"new-pane":"active-pane")})),this.registerEvent(this.app.workspace.on("file-menu",((e,A)=>{e.addItem((e=>{e.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((()=>{let e=A.path;A instanceof obsidian_module.TFile&&(e=obsidian_module.normalizePath(A.path.substr(0,A.path.lastIndexOf(A.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane",e)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,A)=>{A instanceof obsidian_module.TFile&&"excalidraw"==A.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(A,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,A)=>{A instanceof obsidian_module.TFile&&"excalidraw"==A.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(A,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-disable-autosave",name:t$d("TEMPORARY_DISABLE_AUTOSAVE"),checkCallback:e=>!!this.settings.autosave&&(e||(this.settings.autosave=!1),!0)}),this.addCommand({id:"excalidraw-enable-autosave",name:t$d("TEMPORARY_ENABLE_AUTOSAVE"),checkCallback:e=>!this.settings.autosave&&(e||(this.settings.autosave=!0),!0)}),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const A=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return A instanceof obsidian_module.TFile&&(this.embedDrawing(A),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:e=>{if(e)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const e=async e=>{const A=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!A)return;const t=getEmbedFilename(A.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,A.file.path,t)).folder,n=await this.createDrawing(t,i);await this.embedDrawing(n),this.openDrawing(n,e,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:A=>A?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("popout-window"),!0)}),this.addCommand({id:"export-svg",name:t$d("EXPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.saveSVG(),!0)}}),this.addCommand({id:"export-svg-scene",name:t$d("EXPORT_SVG_WITH_SCENE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.saveSVG(void 0,!0),!0)}}),this.addCommand({id:"run-ocr",name:t$d("RUN_OCR"),checkCallback:e=>{const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return e?Boolean(A):!!A&&(this.settings.taskboneEnabled?(this.taskbone.getTextForView(A,!1),!0):(new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3),!0))}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(search(A),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.isFullscreen()?A.exitFullscreen():A.gotoFullscreen(),!0)}}),this.addCommand({id:"export-png",name:t$d("EXPORT_PNG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.savePNG(),!0)}}),this.addCommand({id:"export-png-scene",name:t$d("EXPORT_PNG_WITH_SCENE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.savePNG(void 0,!0),!0)}}),this.forceSaveCommand=this.addCommand({id:"save",hotkeys:[{modifiers:["Ctrl"],key:"s"}],name:t$d("FORCE_SAVE"),checkCallback:e=>this.forceSaveActiveView(e)}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:e=>{if(e)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!A||A.compatibilityMode||(A.changeTextMode(A.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(A){this.ea.reset(),this.ea.setView(A);const e=this.ea.getViewSelectedElement();if("image"!==e.type)return new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0;const t=this.ea.getViewFileForImageElement(e);return t?(this.app.vault.delete(t),this.ea.deleteViewElements([e]),!0):(new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.insertLinkDialog.start(A.file.path,A.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:e=>{if(e){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView),A=null==e?void 0:e.excalidrawAPI;return!!A&&!!A.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const e=this.settings.isLeftHanded;await this.loadSettings({applyLefthandedMode:!1}),this.settings.isLeftHanded=!e,this.saveSettings(),setLeftHandedMode(!e),setTimeout((()=>setLeftHandedMode(!e)))})(),!0}}),this.addCommand({id:"reset-image-to-100",name:t$d("RESET_IMG_TO_100"),checkCallback:e=>{const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!A)return!1;if(!A.excalidrawAPI)return!1;const t=A.getViewSelectedElements().filter((e=>"image"===e.type));if(1!==t.length)return e||new obsidian_module.Notice("Select a single image element and try again"),!1;const i=t[0];return A.excalidrawData.getFile(i.fileId)?!!e||void(async()=>{const e=new ExcalidrawAutomate(this,A),n=await e.getOriginalImageSize(i);if(n){e.copyViewElementsToEAforEditing(t);const A=e.getElement(i.id);A.width=n.width,A.height=n.height,e.addElementsToView(!1,!1,!1)}})():(e||new obsidian_module.Notice("Select a single image element and try again"),!1)}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.insertImageDialog.start(A),!0)}}),this.addCommand({id:"import-svg",name:t$d("IMPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.importSVGDialog.start(A),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:e=>{if(e){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!e||!e.excalidrawRef)return!1;const A=e.excalidrawAPI.getAppState();return!A.zenModeEnabled&&!A.viewModeEnabled}const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!A||!A.excalidrawAPI||(A.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.insertMDDialog.start(A),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(insertLaTeXToView(A),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:e=>{const A=this.app.workspace.getActiveFile();if(!A)return!1;const t=this.isExcalidrawFile(A);if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:t;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const e=i.leaf;return this.excalidrawFileModes[e.id||A.path]="markdown",void this.setMarkdownView(e)}const n=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(n&&t){const e=n.leaf;return this.excalidrawFileModes[e.id||A.path]="excalidraw",void this.setExcalidrawView(e)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:e=>{const A=this.app.workspace.getActiveFile(),t=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!A||!t)return!1;const i=0===A.stat.size;if(e)return i;i&&(async()=>{await this.app.vault.modify(A,await this.getBlankDrawing()),this.setExcalidrawView(t.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:e=>{if(e){const e=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));return e.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(e,A=!1,t=!1){const i=await this.app.vault.read(e),n=e.name.substring(0,e.name.lastIndexOf(".excalidraw"))+(A?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian_module.normalizePath(e.path.substring(0,e.path.lastIndexOf(e.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&EXPORT_TYPES.forEach((A=>{const t=e.path.substring(0,e.path.lastIndexOf(".excalidraw"))+A,i=this.app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t));if(i&&i instanceof obsidian_module.TFile){const e=a.substring(0,a.lastIndexOf(".md"))+A;this.app.fileManager.renameFile(i,e)}})),t||this.app.vault.delete(e),r}async convertExcalidrawToMD(e=!1,A=!1){const t=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));for(const i of t)this.convertSingleExcalidrawToMD(i,e,A);new obsidian_module.Notice(`Converted ${t.length} files.`)}registerMonkeyPatches(){this.registerEvent(app.workspace.on("editor-menu",((e,A,t)=>{if(!(t&&t instanceof obsidian_module.MarkdownView))return;const i=t.file,n=t.leaf;if(!t.file)return;const a=this.app.metadataCache.getFileCache(i);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&e.addItem((e=>e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[n.id||i.path]="excalidraw",this.setExcalidrawView(n)}))))}))),this.registerEvent(app.workspace.on("file-menu",((e,A,t,i)=>{if(!(i&&i.view instanceof obsidian_module.MarkdownView))return;if(!(A instanceof obsidian_module.TFile))return;const n=this.app.metadataCache.getFileCache(A);(null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]&&(e.addItem((e=>{e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[i.id||A.path]="excalidraw",this.setExcalidrawView(i)}))})),e.items.unshift(e.items.pop()))})));const e=this;this.register(around(obsidian_module.WorkspaceLeaf.prototype,{detach:A=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&e.excalidrawFileModes[this.id||i.file]&&delete e.excalidrawFileModes[this.id||i.file],A.apply(this)},setViewState:A=>function(t,...i){var n;if(e._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==e.excalidrawFileModes[this.id||t.state.file]){const n=app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return e.excalidrawFileModes[t.state.file]="excalidraw",A.apply(this,[n,...i])}}return A.apply(this,[t,...i])}}))}registerEventListeners(){const e=this;this.app.workspace.onLayoutReady((async()=>{e.registerEvent(app.vault.on("rename",(async(A,t)=>{A instanceof obsidian_module.TFile&&e.isExcalidrawFile(A)&&e.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const i=getIMGFilename(t,e),n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(i));if(n&&n instanceof obsidian_module.TFile){const t=getIMGFilename(A.path,e);await app.fileManager.renameFile(n,t)}}))}))),e.registerEvent(app.vault.on("modify",(async A=>{app.workspace.getLeavesOfType("excalidraw").forEach((async t=>{const i=t.view;if(i.file&&(i.file.path===A.path||"excalidraw"===A.extension&&`${A.path.substring(0,A.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(A instanceof obsidian_module.TFile))return;const t=this.excalidrawFiles.has(A);if(this.updateFileCache(A,void 0,!0),!t)return;const i=app.workspace.getLeavesOfType("excalidraw");for(let e=0;e{[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const t=getIMGFilename(A.path,e),i=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t));i&&i instanceof obsidian_module.TFile&&await app.vault.delete(i)}))}),500)}))),e.registerEvent(app.workspace.on("active-leaf-change",(async A=>{var t;e.leafChangeTimeout&&clearTimeout(e.leafChangeTimeout),e.leafChangeTimeout=setTimeout((()=>{e.leafChangeTimeout=null}),1e3);const i=e.activeExcalidrawView,n=A.view instanceof ExcalidrawView?A.view:null; +//!Temporary hack +if(e.activeExcalidrawView=n,n&&(e.lastActiveExcalidrawFilePath=null===(t=n.file)||void 0===t?void 0:t.path),app.isMobile&&n&&!i){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="relative")}if(app.isMobile&&!n&&i){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="")}if(i&&i!==n&&(i.leaf!==A&&i.semaphores.dirty&&!i.semaphores.viewunload&&await i.save(!0),i.file&&e.triggerEmbedUpdates(i.file.path)),n&&(!i||i.leaf!==A)){const e=n.file;n.file&&setTimeout((()=>{var A;n&&n._loaded&&(null===(A=n.file)||void 0===A?void 0:A.path)===(null==e?void 0:e.path)&&(n.activeLoader||n.loadSceneFiles())}),2e3)}if(n&&n._loaded&&n.isLoaded&&n.excalidrawAPI&&e.ea.onCanvasColorChangeHook&&e.ea.onCanvasColorChangeHook(e.ea,n,n.excalidrawAPI.getAppState().viewBackgroundColor),e.popScope&&(e.popScope(),e.popScope=null),n){const A=e.app.keymap.getRootScope(),t=A.register(["Mod"],"Enter",(()=>!0)),i=e.forceSaveCommand&&"s"===e.forceSaveCommand.hotkeys[0].key&&e.forceSaveCommand.hotkeys[0].modifiers.includes("Ctrl")?A.register(["Ctrl"],"s",(()=>e.forceSaveActiveView(!1))):void 0;A.keys.unshift(A.keys.pop()),e.popScope=()=>{A.unregister(t),Boolean(i)&&A.unregister(i)}}}))),e.addFileSaveTriggerEventHandlers();const A=app.metadataCache;A.getCachedFiles().forEach((t=>{var i;const n=null===(i=A.getCache(t))||void 0===i?void 0:i.frontmatter;(n&&void 0!==n[FRONTMATTER_KEY]||t.match(/\.excalidraw$/))&&e.updateFileCache(app.vault.getAbstractFileByPath(t),n)})),this.registerEvent(A.on("changed",((e,A,t)=>this.updateFileCache(e,null==t?void 0:t.frontmatter))))}))}addFileSaveTriggerEventHandlers(){this.registerEvent(this.app.workspace.on("click",(e=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!e.target||"excalidraw__canvas"!==e.target.className&&!getParentOfClass(e.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()}))),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async e=>{1===e.length&&"childList"===e[0].type&&1===e[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const e=document.querySelector(".workspace-drawer.mod-left"),A=document.querySelector(".workspace-drawer.mod-right");if(e||A){const t=async e=>{"display: none;"===e[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},i={attributeOldValue:!0,attributeFilter:["style"]};e&&(this.workspaceDrawerLeftObserver=new MutationObserver(t),this.workspaceDrawerLeftObserver.observe(e,i)),A&&(this.workspaceDrawerRightObserver=new MutationObserver(t),this.workspaceDrawerRightObserver.observe(A,i))}}updateFileCache(e,A,t=!1){A&&void 0!==A[FRONTMATTER_KEY]?this.excalidrawFiles.add(e):t||"excalidraw"!==e.extension?this.excalidrawFiles.delete(e):this.excalidrawFiles.add(e)}onunload(){destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{this.setMarkdownView(e)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((e=>{delete e.excalidrawLib,delete e.reactDOM,delete e.react}))}async embedDrawing(e){const A=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(A&&A.file){const t=this.app.metadataCache.fileToLinktext(e,A.file.path,"excalidraw"===this.settings.embedType),i=A.editor;if("excalidraw"===this.settings.embedType)return i.replaceSelection(this.settings.embedWikiLink?`![[${t}]]`:`![](${encodeURI(t)})`),void i.focus();let n=this.settings.autoExportLightAndDark?getExportTheme(this,e,this.settings.exportWithTheme&&isObsidianThemeDark()?"dark":"light"):"";n=""===n?"":n+".";const a=getIMGFilename(t,n+this.settings.embedType.toLowerCase()),r=getIMGFilename(e.path,n+this.settings.embedType.toLowerCase()),s="dark."===n?"light.":"dark.",o=getIMGFilename(t,s+this.settings.embedType.toLowerCase());this.app.vault.getAbstractFileByPath(r)||(await this.app.vault.create(r,""),await sleep$1(200)),i.replaceSelection(this.settings.embedWikiLink?`![[${a}]]\n%%[[${t}|🖋 Edit in Excalidraw]]${o?", and the [["+o+"|"+s.split(".")[0]+" exported image]]":""}%%`:`![](${encodeURI(a)})\n%%[🖋 Edit in Excalidraw](${encodeURI(t)})${o?", and the ["+s.split(".")[0]+" exported image]("+encodeURI(o)+")":""}%%`),i.focus()}}async loadSettings(e={applyLefthandedMode:!0,reEnableAutosave:!1}){void 0===e.applyLefthandedMode&&(e.applyLefthandedMode=!0),void 0===e.reEnableAutosave&&(e.reEnableAutosave=!1),this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),e.applyLefthandedMode&&setLeftHandedMode(this.settings.isLeftHanded),e.reEnableAutosave&&(this.settings.autosave=!0),this.settings.autosaveInterval=app.isMobile?this.settings.autosaveIntervalMobile:this.settings.autosaveIntervalDesktop}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(e){this.settings.library="deprecated",this.settings.library2=e}triggerEmbedUpdates(e){const A=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;if(!i)return;if(A.has(i))return;A.add(i);const n=i.createEvent("Event");n.initEvent(RERENDER_EVENT,!0,!1),i.querySelectorAll("img[class^='excalidraw-svg']"+(e?`[fileSource='${e.replaceAll("'","\\'")}']`:"")).forEach((e=>e.dispatchEvent(n)))}))}openDrawing(e,A,t=!1,i){let n;"popout-window"===A?n=app.workspace.openPopoutLeaf():(n=this.app.workspace.getLeaf(!1),"empty"!==n.view.getViewType()&&"new-pane"===A&&(n=getNewOrAdjacentLeaf(this,n))),n.openFile(e,i&&""!==i?{active:t,eState:{subpath:i}}:{active:t})}async getBlankDrawing(){const e=this.app.metadataCache.getFirstLinkpathDest(obsidian_module.normalizePath(this.settings.templateFilePath),"");if(e&&e instanceof obsidian_module.TFile&&("md"==e.extension&&!this.settings.compatibilityMode||"excalidraw"==e.extension&&this.settings.compatibilityMode)){const A=await this.app.vault.read(e);if(A)return this.settings.matchTheme?changeThemeOfExcalidrawMD(A):A}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const A=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(A,this.settings.compress)}`}async exportSceneToMD(e){var A,t;if(!e)return"";const i=null===(A=JSON_parse(e).elements)||void 0===A?void 0:A.filter((e=>"text"==e.type));let n,a="# Text Elements\n";for(const A of i)n=A.id,A.id.length>8&&(n=nanoid(),e=e.replaceAll(A.id,n)),a+=`${null!==(t=A.originalText)&&void 0!==t?t:A.text} ^${n}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(e),null,"\t"),this.settings.compress)}async createDrawing(e,A,t){const i=obsidian_module.normalizePath(A||this.settings.folder);await checkAndCreateFolder(i);const n=getNewUniqueFilepath(this.app.vault,e,i),a=await this.app.vault.create(n,null!=t?t:await this.getBlankDrawing());let r=0;for(;a instanceof obsidian_module.TFile&&!this.isExcalidrawFile(a)&&r++<10;)await sleep$1(50);return r>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(e,A,t,i){const n=await this.createDrawing(e,t,i);return this.openDrawing(n,A,!0),n.path}async setMarkdownView(e){const A=e.view.getState();await e.setViewState({type:"excalidraw",state:{file:null}}),await e.setViewState({type:"markdown",state:A,popstate:!0},{focus:!0})}async setExcalidrawView(e){await e.setViewState({type:"excalidraw",state:e.view.getState(),popstate:!0})}isExcalidrawFile(e){if(!e)return!1;if("excalidraw"===e.extension)return!0;const A=e?this.app.metadataCache.getFileCache(e):null;return!!(null==A?void 0:A.frontmatter)&&!!A.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidrawlib`;const A=obsidian_module.normalizePath(this.settings.folder);await checkAndCreateFolder(A);const t=getNewUniqueFilepath(this.app.vault,e,A);this.app.vault.create(t,this.settings.library),new obsidian_module.Notice(`Exported library to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json new file mode 100644 index 0000000..1d24144 --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "obsidian-excalidraw-plugin", + "name": "Excalidraw", + "version": "1.8.9", + "minAppVersion": "1.0.0", + "description": "An Obsidian plugin to edit and view Excalidraw drawings", + "author": "Zsolt Viczian", + "authorUrl": "https://zsolt.blog", + "fundingUrl": "https://ko-fi.com/zsolt", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css new file mode 100644 index 0000000..634b9a9 --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css @@ -0,0 +1,291 @@ +.App { + font-family: sans-serif; + text-align: center; + } + + .excalidraw-wrapper { + height: 100%; + margin: 0px; + background-color: white; + } + + .context-menu-option__shortcut { + background-color: transparent !important; + } + +.block-language-excalidraw { + text-align:center; +} + +.excalidraw .github-corner { + display: none; +} + +img.excalidraw-svg-right-wrap { + float: right; + margin: 0px 0px 20px 20px; +} + +img.excalidraw-svg-left-wrap { + float: left; + margin: 0px 35px 20px 0px; +} + +img.excalidraw-svg-right { + float: right; +} + +.excalidraw-svg-center { + text-align: center; +} + +img.excalidraw-svg-left { + float: left; +} + +div.excalidraw-svg-right, +div.excalidraw-svg-left { + display: table; + width: 100%; +} + +button.ToolIcon_type_button[title="Export"] { + display:none; +} + +.excalidraw-prompt-div { + display: flex; + max-width: 800px; +} + +.excalidraw-prompt-form { + display: flex; + flex-grow: 1; +} + +.excalidraw-prompt-input { + flex-grow: 1; +} + +li[data-testid] { + border: 0 !important; + margin: 0 !important; + padding: 0 !important; + width: 100% !important; +} + +.excalidraw .context-menu-option-separator { + margin: 4px !important; +} + +.excalidraw .popover { + padding: 0 !important; + border-color: transparent !important; + border: 0 !important; + box-shadow: 0 !important; + background-color: transparent !important; +} + +.disable-zen-mode--visible { + color: var(--text-primary-color); +} + +.disable-zen-mode { + width: 9em !important; +} + +.ex-coffee-div { + text-align: center; + margin-bottom: 10px; +} + +.excalidraw-scriptengine-install td>img { + width: 100%; + max-width:800px; +} + +.excalidraw-scriptengine-install img.coffee { + width: 130px; +} + +.excalidraw-scriptengine-install tr { + vertical-align: top; +} + +.excalidraw-scriptengine-install table { + max-width: 130ch; +} + +.excalidraw-scriptengine-install td.label { + min-width: 11ch; + font-weight: bold; + padding-right: 5px; +} + +.excalidraw-scriptengine-install td.data { + width: 100%; +} + +.excalidraw-scriptengine-install .modal-content { + max-width: 130ch; + user-select: text; +} + +.excalidraw-scriptengine-install .modal { + max-height:90%; + width: auto; +} + +.excalidraw-prompt-center { + text-align: center !important; +} + +.excalidraw-prompt-center button { + margin: 0 10px; +} + +.excalidraw-prompt-center.filepath { + text-align: center; + font-weight: bold; + margin-bottom: 2em; +} + +.excalidraw-dirty { + color: red; +} + +.workspace-leaf-content .excalidraw-view { + padding: 0px 1px; /*1px so on ipad swipe in from left and right still works*/ +} + +.excalidraw-videoWrapper { + max-width:600px +} +.excalidraw-videoWrapper div { + position: relative; + padding-bottom: 56.25%; + height: 0; + margin: 0 auto; +} + +.excalidraw-videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.excalidraw-release .modal-content{ + padding-right: 5px; + margin-right: -5px; + user-select: text; +} + +.excalidraw-release .modal { + max-height: 80%; + max-width: 100ch; +} + +.excalidraw .Island .scrollbar { + --scrollbar-thumb-bg: silver; +} + +.excalidraw .ToolIcon__icon img{ + height: 1em; +} + +.excalidraw-scriptengine-install tbody>tr>td>div>img { + height:20px; + background-color: silver; + padding: 2px; +} + +.excalidraw-scriptengine-install tbody>tr>td>div { + width: 50px; + display: inline-block; +} + +.excalidraw-release p>a>img { + width: 100% +} + +.excalidraw .context-menu-option { + box-shadow: none; +} + +textarea.excalidraw-wysiwyg { + border: none; + outline: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-radius: 0; +} + +.is-tablet .excalidraw button, +.is-mobile .excalidraw button { + padding: initial; + height: 1.8rem; +} + +.excalidraw button, +.ToolIcon button { + box-shadow: none; + justify-content: initial; +} + +.excalidraw { + --default-button-size: 2rem !important; + --default-icon-size: 1rem !important; + --lg-button-size: 1.8rem !important; + --lg-icon-size: 1rem !important; +} + +.excalidraw .tray-zoom { + pointer-events: initial; + padding-bottom: 0.05rem; + padding-top: 0.05rem; +} + +.excalidraw-container.theme--dark { + background-color: #121212; + color: #fff; +} + +/* https://discordapp.com/channels/686053708261228577/989603365606531104/1041266507256184863 */ +/*.workspace-leaf { + contain: none !important; +}*/ + +.color-picker-content { + overflow-y: auto; + max-height: 10rem; +} + +.excalidraw .FixedSideContainer_side_top { + top: 0.3rem; +} + +.excalidraw .ToolIcon__keybinding { + font-size: 0.45rem !important; +} + +.Island > .Stack > .Stack { + padding:0.2rem; +} + +label.color-input-container > input { + max-width: 8rem; +} + +.excalidraw .FixedSideContainer_side_top { + left: 10px !important; + top: 10px !important; + right: 10px !important; + bottom: 10px !important; +} + +.excalidraw-hidden { + display: none !important; +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/data.json b/.obsidian/plugins/obsidian-git/data.json new file mode 100644 index 0000000..43f3fe8 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/data.json @@ -0,0 +1,27 @@ +{ + "commitMessage": "vault backup: {{date}}", + "autoCommitMessage": "vault backup: {{date}}", + "commitDateFormat": "YYYY-MM-DD HH:mm:ss", + "autoSaveInterval": 0, + "autoPushInterval": 0, + "autoPullInterval": 0, + "autoPullOnBoot": false, + "disablePush": false, + "pullBeforePush": true, + "disablePopups": false, + "listChangedFilesInMessageBody": false, + "showStatusBar": true, + "updateSubmodules": false, + "syncMethod": "merge", + "customMessageOnAutoBackup": false, + "autoBackupAfterFileChange": false, + "treeStructure": true, + "refreshSourceControl": true, + "basePath": "", + "differentIntervalCommitAndPush": false, + "changedFilesInStatusBar": false, + "showedMobileNotice": true, + "refreshSourceControlTimer": 7000, + "showBranchStatusBar": true, + "setLastSaveToLastCommit": false +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js new file mode 100644 index 0000000..1b1f73b --- /dev/null +++ b/.obsidian/plugins/obsidian-git/main.js @@ -0,0 +1,31716 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[Object.keys(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key2 of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key2) && key2 !== "default") + __defProp(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc(module2, key2)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; + +// node_modules/base64-js/index.js +var require_base64_js = __commonJS({ + "node_modules/base64-js/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + exports.byteLength = byteLength; + exports.toByteArray = toByteArray; + exports.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + var i; + var len; + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) + validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i2; + for (i2 = 0; i2 < len2; i2 += 4) { + tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num2) { + return lookup[num2 >> 18 & 63] + lookup[num2 >> 12 & 63] + lookup[num2 >> 6 & 63] + lookup[num2 & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i2 = start; i2 < end; i2 += 3) { + tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { + parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="); + } + return parts.join(""); + } + } +}); + +// node_modules/ieee754/index.js +var require_ieee754 = __commonJS({ + "node_modules/ieee754/index.js"(exports) { + init_polyfill_buffer(); + exports.read = function(buffer2, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer2[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + exports.write = function(buffer2, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer2[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { + } + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer2[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { + } + buffer2[offset + i - d] |= s * 128; + }; + } +}); + +// node_modules/buffer/index.js +var require_buffer = __commonJS({ + "node_modules/buffer/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var base64 = require_base64_js(); + var ieee754 = require_ieee754(); + var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; + exports.Buffer = Buffer3; + exports.SlowBuffer = SlowBuffer; + exports.INSPECT_MAX_BYTES = 50; + var K_MAX_LENGTH = 2147483647; + exports.kMaxLength = K_MAX_LENGTH; + Buffer3.TYPED_ARRAY_SUPPORT = typedArraySupport(); + if (!Buffer3.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { + console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."); + } + function typedArraySupport() { + try { + const arr = new Uint8Array(1); + const proto = { foo: function() { + return 42; + } }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e) { + return false; + } + } + Object.defineProperty(Buffer3.prototype, "parent", { + enumerable: true, + get: function() { + if (!Buffer3.isBuffer(this)) + return void 0; + return this.buffer; + } + }); + Object.defineProperty(Buffer3.prototype, "offset", { + enumerable: true, + get: function() { + if (!Buffer3.isBuffer(this)) + return void 0; + return this.byteOffset; + } + }); + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer3.prototype); + return buf; + } + function Buffer3(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError('The "string" argument must be of type string. Received type number'); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); + } + Buffer3.poolSize = 8192; + function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + if (value == null) { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type number'); + } + const valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer3.from(valueOf, encodingOrOffset, length); + } + const b = fromObject(value); + if (b) + return b; + if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { + return Buffer3.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length); + } + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + Buffer3.from = function(value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); + }; + Object.setPrototypeOf(Buffer3.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer3, Uint8Array); + function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + } + function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== void 0) { + return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); + } + Buffer3.alloc = function(size, fill, encoding) { + return alloc(size, fill, encoding); + }; + function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); + } + Buffer3.allocUnsafe = function(size) { + return allocUnsafe(size); + }; + Buffer3.allocUnsafeSlow = function(size) { + return allocUnsafe(size); + }; + function fromString(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer3.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + const length = byteLength(string, encoding) | 0; + let buf = createBuffer(length); + const actual = buf.write(string, encoding); + if (actual !== length) { + buf = buf.slice(0, actual); + } + return buf; + } + function fromArrayLike(array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0; + const buf = createBuffer(length); + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; + } + function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy2 = new Uint8Array(arrayView); + return fromArrayBuffer(copy2.buffer, copy2.byteOffset, copy2.byteLength); + } + return fromArrayLike(arrayView); + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + let buf; + if (byteOffset === void 0 && length === void 0) { + buf = new Uint8Array(array); + } else if (length === void 0) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + Object.setPrototypeOf(buf, Buffer3.prototype); + return buf; + } + function fromObject(obj) { + if (Buffer3.isBuffer(obj)) { + const len = checked(obj.length) | 0; + const buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== void 0) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); + } + return length | 0; + } + function SlowBuffer(length) { + if (+length != length) { + length = 0; + } + return Buffer3.alloc(+length); + } + Buffer3.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer3.prototype; + }; + Buffer3.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) + a = Buffer3.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) + b = Buffer3.from(b, b.offset, b.byteLength); + if (!Buffer3.isBuffer(a) || !Buffer3.isBuffer(b)) { + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); + } + if (a === b) + return 0; + let x = a.length; + let y = b.length; + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + if (x < y) + return -1; + if (y < x) + return 1; + return 0; + }; + Buffer3.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } + }; + Buffer3.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer3.alloc(0); + } + let i; + if (length === void 0) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + const buffer2 = Buffer3.allocUnsafe(length); + let pos = 0; + for (i = 0; i < list.length; ++i) { + let buf = list[i]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer2.length) { + if (!Buffer3.isBuffer(buf)) + buf = Buffer3.from(buf); + buf.copy(buffer2, pos); + } else { + Uint8Array.prototype.set.call(buffer2, buf, pos); + } + } else if (!Buffer3.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer2, pos); + } + pos += buf.length; + } + return buffer2; + }; + function byteLength(string, encoding) { + if (Buffer3.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string); + } + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) + return 0; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer3.byteLength = byteLength; + function slowToString(encoding, start, end) { + let loweredCase = false; + if (start === void 0 || start < 0) { + start = 0; + } + if (start > this.length) { + return ""; + } + if (end === void 0 || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ""; + } + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ""; + } + if (!encoding) + encoding = "utf8"; + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + case "ascii": + return asciiSlice(this, start, end); + case "latin1": + case "binary": + return latin1Slice(this, start, end); + case "base64": + return base64Slice(this, start, end); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } + } + Buffer3.prototype._isBuffer = true; + function swap(b, n, m) { + const i = b[n]; + b[n] = b[m]; + b[m] = i; + } + Buffer3.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; + }; + Buffer3.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; + }; + Buffer3.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; + }; + Buffer3.prototype.toString = function toString() { + const length = this.length; + if (length === 0) + return ""; + if (arguments.length === 0) + return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + Buffer3.prototype.toLocaleString = Buffer3.prototype.toString; + Buffer3.prototype.equals = function equals2(b) { + if (!Buffer3.isBuffer(b)) + throw new TypeError("Argument must be a Buffer"); + if (this === b) + return true; + return Buffer3.compare(this, b) === 0; + }; + Buffer3.prototype.inspect = function inspect() { + let str = ""; + const max = exports.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + if (this.length > max) + str += " ... "; + return ""; + }; + if (customInspectSymbol) { + Buffer3.prototype[customInspectSymbol] = Buffer3.prototype.inspect; + } + Buffer3.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer3.from(target, target.offset, target.byteLength); + } + if (!Buffer3.isBuffer(target)) { + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target); + } + if (start === void 0) { + start = 0; + } + if (end === void 0) { + end = target ? target.length : 0; + } + if (thisStart === void 0) { + thisStart = 0; + } + if (thisEnd === void 0) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError("out of range index"); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) + return 0; + let x = thisEnd - thisStart; + let y = end - start; + const len = Math.min(x, y); + const thisCopy = this.slice(thisStart, thisEnd); + const targetCopy = target.slice(start, end); + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + if (x < y) + return -1; + if (y < x) + return 1; + return 0; + }; + function bidirectionalIndexOf(buffer2, val, byteOffset, encoding, dir) { + if (buffer2.length === 0) + return -1; + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer2.length - 1; + } + if (byteOffset < 0) + byteOffset = buffer2.length + byteOffset; + if (byteOffset >= buffer2.length) { + if (dir) + return -1; + else + byteOffset = buffer2.length - 1; + } else if (byteOffset < 0) { + if (dir) + byteOffset = 0; + else + return -1; + } + if (typeof val === "string") { + val = Buffer3.from(val, encoding); + } + if (Buffer3.isBuffer(val)) { + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer2, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 255; + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer2, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer2, val, byteOffset); + } + } + return arrayIndexOf(buffer2, [val], byteOffset, encoding, dir); + } + throw new TypeError("val must be string, number or Buffer"); + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + if (encoding !== void 0) { + encoding = String(encoding).toLowerCase(); + if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i2) { + if (indexSize === 1) { + return buf[i2]; + } else { + return buf.readUInt16BE(i2 * indexSize); + } + } + let i; + if (dir) { + let foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) + foundIndex = i; + if (i - foundIndex + 1 === valLength) + return foundIndex * indexSize; + } else { + if (foundIndex !== -1) + i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) + byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + let found = true; + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) + return i; + } + } + return -1; + } + Buffer3.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + Buffer3.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + Buffer3.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + const strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + let i; + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) + return i; + buf[offset + i] = parsed; + } + return i; + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + Buffer3.prototype.write = function write(string, offset, length, encoding) { + if (offset === void 0) { + encoding = "utf8"; + length = this.length; + offset = 0; + } else if (length === void 0 && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === void 0) + encoding = "utf8"; + } else { + encoding = length; + length = void 0; + } + } else { + throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); + } + const remaining = this.length - offset; + if (length === void 0 || length > remaining) + length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + if (!encoding) + encoding = "utf8"; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + case "base64": + return base64Write(this, string, offset, length); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + Buffer3.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + const res = []; + let i = start; + while (i < end) { + const firstByte = buf[i]; + let codePoint = null; + let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 192) === 128) { + tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; + if (tempCodePoint > 127) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; + if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + codePoint = 65533; + bytesPerSequence = 1; + } else if (codePoint > 65535) { + codePoint -= 65536; + res.push(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + res.push(codePoint); + i += bytesPerSequence; + } + return decodeCodePointsArray(res); + } + var MAX_ARGUMENTS_LENGTH = 4096; + function decodeCodePointsArray(codePoints) { + const len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); + } + let res = ""; + let i = 0; + while (i < len) { + res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); + } + return res; + } + function asciiSlice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 127); + } + return ret; + } + function latin1Slice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; + } + function hexSlice(buf, start, end) { + const len = buf.length; + if (!start || start < 0) + start = 0; + if (!end || end < 0 || end > len) + end = len; + let out = ""; + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out; + } + function utf16leSlice(buf, start, end) { + const bytes = buf.slice(start, end); + let res = ""; + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; + } + Buffer3.prototype.slice = function slice(start, end) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) + start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) + end = 0; + } else if (end > len) { + end = len; + } + if (end < start) + end = start; + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer3.prototype); + return newBuf; + }; + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) + throw new RangeError("offset is not uint"); + if (offset + ext > length) + throw new RangeError("Trying to access beyond buffer length"); + } + Buffer3.prototype.readUintLE = Buffer3.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + return val; + }; + Buffer3.prototype.readUintBE = Buffer3.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength2, this.length); + } + let val = this[offset + --byteLength2]; + let mul = 1; + while (byteLength2 > 0 && (mul *= 256)) { + val += this[offset + --byteLength2] * mul; + } + return val; + }; + Buffer3.prototype.readUint8 = Buffer3.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + return this[offset]; + }; + Buffer3.prototype.readUint16LE = Buffer3.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + Buffer3.prototype.readUint16BE = Buffer3.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + Buffer3.prototype.readUint32LE = Buffer3.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; + }; + Buffer3.prototype.readUint32BE = Buffer3.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + Buffer3.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const lo = first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24; + const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last2 * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }); + Buffer3.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const hi = first2 * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }); + Buffer3.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer3.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let i = byteLength2; + let mul = 1; + let val = this[offset + --i]; + while (i > 0 && (mul *= 256)) { + val += this[offset + --i] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer3.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + if (!(this[offset] & 128)) + return this[offset]; + return (255 - this[offset] + 1) * -1; + }; + Buffer3.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset] | this[offset + 1] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer3.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset + 1] | this[offset] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer3.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + Buffer3.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + Buffer3.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last2 << 24); + return (BigInt(val) << BigInt(32)) + BigInt(first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24); + }); + Buffer3.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = (first2 << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2); + }); + Buffer3.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); + }; + Buffer3.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); + }; + Buffer3.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); + }; + Buffer3.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); + }; + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer3.isBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + } + Buffer3.prototype.writeUintLE = Buffer3.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let mul = 1; + let i = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeUintBE = Buffer3.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let i = byteLength2 - 1; + let mul = 1; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeUint8 = Buffer3.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 255, 0); + this[offset] = value & 255; + return offset + 1; + }; + Buffer3.prototype.writeUint16LE = Buffer3.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer3.prototype.writeUint16BE = Buffer3.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer3.prototype.writeUint32LE = Buffer3.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 255; + return offset + 4; + }; + Buffer3.prototype.writeUint32BE = Buffer3.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + function wrtBigUInt64LE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; + } + function wrtBigUInt64BE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; + } + Buffer3.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer3.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer3.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = 0; + let mul = 1; + let sub = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = byteLength2 - 1; + let mul = 1; + let sub = 0; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 127, -128); + if (value < 0) + value = 255 + value + 1; + this[offset] = value & 255; + return offset + 1; + }; + Buffer3.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer3.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer3.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; + }; + Buffer3.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + if (value < 0) + value = 4294967295 + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + Buffer3.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + Buffer3.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + if (offset < 0) + throw new RangeError("Index out of range"); + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + Buffer3.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + Buffer3.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + Buffer3.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + Buffer3.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; + Buffer3.prototype.copy = function copy2(target, targetStart, start, end) { + if (!Buffer3.isBuffer(target)) + throw new TypeError("argument should be a Buffer"); + if (!start) + start = 0; + if (!end && end !== 0) + end = this.length; + if (targetStart >= target.length) + targetStart = target.length; + if (!targetStart) + targetStart = 0; + if (end > 0 && end < start) + end = start; + if (end === start) + return 0; + if (target.length === 0 || this.length === 0) + return 0; + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) + throw new RangeError("Index out of range"); + if (end < 0) + throw new RangeError("sourceEnd out of bounds"); + if (end > this.length) + end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + const len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === "function") { + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart); + } + return len; + }; + Buffer3.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== void 0 && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer3.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === void 0 ? this.length : end >>> 0; + if (!val) + val = 0; + let i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + const bytes = Buffer3.isBuffer(val) ? val : Buffer3.from(val, encoding); + const len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + return this; + }; + var errors = {}; + function E(sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor() { + super(); + Object.defineProperty(this, "message", { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }); + this.name = `${this.name} [${sym}]`; + this.stack; + delete this.name; + } + get code() { + return sym; + } + set code(value) { + Object.defineProperty(this, "code", { + configurable: true, + enumerable: true, + value, + writable: true + }); + } + toString() { + return `${this.name} [${sym}]: ${this.message}`; + } + }; + } + E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) { + if (name) { + return `${name} is outside of buffer bounds`; + } + return "Attempt to access memory outside buffer bounds"; + }, RangeError); + E("ERR_INVALID_ARG_TYPE", function(name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}`; + }, TypeError); + E("ERR_OUT_OF_RANGE", function(str, range, input) { + let msg = `The value of "${str}" is out of range.`; + let received = input; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received); + } + received += "n"; + } + msg += ` It must be ${range}. Received ${received}`; + return msg; + }, RangeError); + function addNumericalSeparator(val) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; + } + function checkBounds(buf, offset, byteLength2) { + validateNumber(offset, "offset"); + if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } + } + function checkIntBI(value, min, max, buf, offset, byteLength2) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength2 > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`; + } + } else { + range = `>= ${min}${n} and <= ${max}${n}`; + } + throw new errors.ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); + } + function validateNumber(value, name) { + if (typeof value !== "number") { + throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value); + } + } + function boundsError(value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type); + throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value); + } + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS(); + } + throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value); + } + var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + function base64clean(str) { + str = str.split("=")[0]; + str = str.trim().replace(INVALID_BASE64_RE, ""); + if (str.length < 2) + return ""; + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; + } + function utf8ToBytes(string, units) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } else if (i + 1 === length) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } + leadSurrogate = codePoint; + continue; + } + if (codePoint < 56320) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + leadSurrogate = codePoint; + continue; + } + codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; + } else if (leadSurrogate) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + } + leadSurrogate = null; + if (codePoint < 128) { + if ((units -= 1) < 0) + break; + bytes.push(codePoint); + } else if (codePoint < 2048) { + if ((units -= 2) < 0) + break; + bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128); + } else if (codePoint < 65536) { + if ((units -= 3) < 0) + break; + bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) + break; + bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else { + throw new Error("Invalid code point"); + } + } + return bytes; + } + function asciiToBytes(str) { + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + byteArray.push(str.charCodeAt(i) & 255); + } + return byteArray; + } + function utf16leToBytes(str, units) { + let c, hi, lo; + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) + break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); + } + function blitBuffer(src, dst, offset, length) { + let i; + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) + break; + dst[i + offset] = src[i]; + } + return i; + } + function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; + } + function numberIsNaN(obj) { + return obj !== obj; + } + var hexSliceLookupTable = function() { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i = 0; i < 16; ++i) { + const i16 = i * 16; + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; + }(); + function defineBigIntMethod(fn) { + return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn; + } + function BufferBigIntNotDefined() { + throw new Error("BigInt not supported"); + } + } +}); + +// polyfill_buffer.js +var import_obsidian, buffer, Buffer2; +var init_polyfill_buffer = __esm({ + "polyfill_buffer.js"() { + import_obsidian = __toModule(require("obsidian")); + if (import_obsidian.Platform.isMobileApp) { + buffer = require_buffer().Buffer; + } else { + buffer = global.Buffer; + } + Buffer2 = buffer; + } +}); + +// node_modules/async-lock/lib/index.js +var require_lib = __commonJS({ + "node_modules/async-lock/lib/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var AsyncLock2 = function(opts) { + opts = opts || {}; + this.Promise = opts.Promise || Promise; + this.queues = Object.create(null); + this.domainReentrant = opts.domainReentrant || false; + if (this.domainReentrant) { + if (typeof process === "undefined" || typeof process.domain === "undefined") { + throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill."); + } + this.domains = Object.create(null); + } + this.timeout = opts.timeout || AsyncLock2.DEFAULT_TIMEOUT; + this.maxOccupationTime = opts.maxOccupationTime || AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME; + this.maxExecutionTime = opts.maxExecutionTime || AsyncLock2.DEFAULT_MAX_EXECUTION_TIME; + if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) { + this.maxPending = opts.maxPending; + } else { + this.maxPending = AsyncLock2.DEFAULT_MAX_PENDING; + } + }; + AsyncLock2.DEFAULT_TIMEOUT = 0; + AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME = 0; + AsyncLock2.DEFAULT_MAX_EXECUTION_TIME = 0; + AsyncLock2.DEFAULT_MAX_PENDING = 1e3; + AsyncLock2.prototype.acquire = function(key2, fn, cb, opts) { + if (Array.isArray(key2)) { + return this._acquireBatch(key2, fn, cb, opts); + } + if (typeof fn !== "function") { + throw new Error("You must pass a function to execute"); + } + var deferredResolve = null; + var deferredReject = null; + var deferred2 = null; + if (typeof cb !== "function") { + opts = cb; + cb = null; + deferred2 = new this.Promise(function(resolve, reject) { + deferredResolve = resolve; + deferredReject = reject; + }); + } + opts = opts || {}; + var resolved = false; + var timer = null; + var occupationTimer = null; + var executionTimer = null; + var self3 = this; + var done = function(locked, err, ret) { + if (occupationTimer) { + clearTimeout(occupationTimer); + occupationTimer = null; + } + if (executionTimer) { + clearTimeout(executionTimer); + executionTimer = null; + } + if (locked) { + if (!!self3.queues[key2] && self3.queues[key2].length === 0) { + delete self3.queues[key2]; + } + if (self3.domainReentrant) { + delete self3.domains[key2]; + } + } + if (!resolved) { + if (!deferred2) { + if (typeof cb === "function") { + cb(err, ret); + } + } else { + if (err) { + deferredReject(err); + } else { + deferredResolve(ret); + } + } + resolved = true; + } + if (locked) { + if (!!self3.queues[key2] && self3.queues[key2].length > 0) { + self3.queues[key2].shift()(); + } + } + }; + var exec = function(locked) { + if (resolved) { + return done(locked); + } + if (timer) { + clearTimeout(timer); + timer = null; + } + if (self3.domainReentrant && locked) { + self3.domains[key2] = process.domain; + } + var maxExecutionTime = opts.maxExecutionTime || self3.maxExecutionTime; + if (maxExecutionTime) { + executionTimer = setTimeout(function() { + if (!!self3.queues[key2]) { + done(locked, new Error("Maximum execution time is exceeded " + key2)); + } + }, maxExecutionTime); + } + if (fn.length === 1) { + var called = false; + try { + fn(function(err, ret) { + if (!called) { + called = true; + done(locked, err, ret); + } + }); + } catch (err) { + if (!called) { + called = true; + done(locked, err); + } + } + } else { + self3._promiseTry(function() { + return fn(); + }).then(function(ret) { + done(locked, void 0, ret); + }, function(error) { + done(locked, error); + }); + } + }; + if (self3.domainReentrant && !!process.domain) { + exec = process.domain.bind(exec); + } + if (!self3.queues[key2]) { + self3.queues[key2] = []; + exec(true); + } else if (self3.domainReentrant && !!process.domain && process.domain === self3.domains[key2]) { + exec(false); + } else if (self3.queues[key2].length >= self3.maxPending) { + done(false, new Error("Too many pending tasks in queue " + key2)); + } else { + var taskFn = function() { + exec(true); + }; + if (opts.skipQueue) { + self3.queues[key2].unshift(taskFn); + } else { + self3.queues[key2].push(taskFn); + } + var timeout = opts.timeout || self3.timeout; + if (timeout) { + timer = setTimeout(function() { + timer = null; + done(false, new Error("async-lock timed out in queue " + key2)); + }, timeout); + } + } + var maxOccupationTime = opts.maxOccupationTime || self3.maxOccupationTime; + if (maxOccupationTime) { + occupationTimer = setTimeout(function() { + if (!!self3.queues[key2]) { + done(false, new Error("Maximum occupation time is exceeded in queue " + key2)); + } + }, maxOccupationTime); + } + if (deferred2) { + return deferred2; + } + }; + AsyncLock2.prototype._acquireBatch = function(keys, fn, cb, opts) { + if (typeof cb !== "function") { + opts = cb; + cb = null; + } + var self3 = this; + var getFn = function(key2, fn2) { + return function(cb2) { + self3.acquire(key2, fn2, cb2, opts); + }; + }; + var fnx = keys.reduceRight(function(prev, key2) { + return getFn(key2, prev); + }, fn); + if (typeof cb === "function") { + fnx(cb); + } else { + return new this.Promise(function(resolve, reject) { + if (fnx.length === 1) { + fnx(function(err, ret) { + if (err) { + reject(err); + } else { + resolve(ret); + } + }); + } else { + resolve(fnx()); + } + }); + } + }; + AsyncLock2.prototype.isBusy = function(key2) { + if (!key2) { + return Object.keys(this.queues).length > 0; + } else { + return !!this.queues[key2]; + } + }; + AsyncLock2.prototype._promiseTry = function(fn) { + try { + return this.Promise.resolve(fn()); + } catch (e) { + return this.Promise.reject(e); + } + }; + module2.exports = AsyncLock2; + } +}); + +// node_modules/async-lock/index.js +var require_async_lock = __commonJS({ + "node_modules/async-lock/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + module2.exports = require_lib(); + } +}); + +// node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "node_modules/inherits/inherits_browser.js"(exports, module2) { + init_polyfill_buffer(); + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); + +// node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/safe-buffer/index.js"(exports, module2) { + init_polyfill_buffer(); + var buffer2 = require_buffer(); + var Buffer3 = buffer2.Buffer; + function copyProps(src, dst) { + for (var key2 in src) { + dst[key2] = src[key2]; + } + } + if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) { + module2.exports = buffer2; + } else { + copyProps(buffer2, exports); + exports.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer3(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer3.prototype); + copyProps(Buffer3, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer3(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer3(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer3(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer2.SlowBuffer(size); + }; + } +}); + +// node_modules/sha.js/hash.js +var require_hash = __commonJS({ + "node_modules/sha.js/hash.js"(exports, module2) { + init_polyfill_buffer(); + var Buffer3 = require_safe_buffer().Buffer; + function Hash2(blockSize, finalSize) { + this._block = Buffer3.alloc(blockSize); + this._finalSize = finalSize; + this._blockSize = blockSize; + this._len = 0; + } + Hash2.prototype.update = function(data, enc) { + if (typeof data === "string") { + enc = enc || "utf8"; + data = Buffer3.from(data, enc); + } + var block = this._block; + var blockSize = this._blockSize; + var length = data.length; + var accum = this._len; + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i]; + } + accum += remainder; + offset += remainder; + if (accum % blockSize === 0) { + this._update(block); + } + } + this._len += length; + return this; + }; + Hash2.prototype.digest = function(enc) { + var rem = this._len % this._blockSize; + this._block[rem] = 128; + this._block.fill(0, rem + 1); + if (rem >= this._finalSize) { + this._update(this._block); + this._block.fill(0); + } + var bits = this._len * 8; + if (bits <= 4294967295) { + this._block.writeUInt32BE(bits, this._blockSize - 4); + } else { + var lowBits = (bits & 4294967295) >>> 0; + var highBits = (bits - lowBits) / 4294967296; + this._block.writeUInt32BE(highBits, this._blockSize - 8); + this._block.writeUInt32BE(lowBits, this._blockSize - 4); + } + this._update(this._block); + var hash2 = this._hash(); + return enc ? hash2.toString(enc) : hash2; + }; + Hash2.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); + }; + module2.exports = Hash2; + } +}); + +// node_modules/sha.js/sha1.js +var require_sha1 = __commonJS({ + "node_modules/sha.js/sha1.js"(exports, module2) { + init_polyfill_buffer(); + var inherits = require_inherits_browser(); + var Hash2 = require_hash(); + var Buffer3 = require_safe_buffer().Buffer; + var K = [ + 1518500249, + 1859775393, + 2400959708 | 0, + 3395469782 | 0 + ]; + var W = new Array(80); + function Sha1() { + this.init(); + this._w = W; + Hash2.call(this, 64, 56); + } + inherits(Sha1, Hash2); + Sha1.prototype.init = function() { + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + this._e = 3285377520; + return this; + }; + function rotl1(num2) { + return num2 << 1 | num2 >>> 31; + } + function rotl5(num2) { + return num2 << 5 | num2 >>> 27; + } + function rotl30(num2) { + return num2 << 30 | num2 >>> 2; + } + function ft(s, b, c, d) { + if (s === 0) + return b & c | ~b & d; + if (s === 2) + return b & c | b & d | c & d; + return b ^ c ^ d; + } + Sha1.prototype._update = function(M) { + var W2 = this._w; + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; + for (var i = 0; i < 16; ++i) + W2[i] = M.readInt32BE(i * 4); + for (; i < 80; ++i) + W2[i] = rotl1(W2[i - 3] ^ W2[i - 8] ^ W2[i - 14] ^ W2[i - 16]); + for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20); + var t = rotl5(a) + ft(s, b, c, d) + e + W2[j] + K[s] | 0; + e = d; + d = c; + c = rotl30(b); + b = a; + a = t; + } + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + }; + Sha1.prototype._hash = function() { + var H = Buffer3.allocUnsafe(20); + H.writeInt32BE(this._a | 0, 0); + H.writeInt32BE(this._b | 0, 4); + H.writeInt32BE(this._c | 0, 8); + H.writeInt32BE(this._d | 0, 12); + H.writeInt32BE(this._e | 0, 16); + return H; + }; + module2.exports = Sha1; + } +}); + +// node_modules/crc-32/crc32.js +var require_crc32 = __commonJS({ + "node_modules/crc-32/crc32.js"(exports) { + init_polyfill_buffer(); + var CRC32; + (function(factory) { + if (typeof DO_NOT_EXPORT_CRC === "undefined") { + if (typeof exports === "object") { + factory(exports); + } else if (typeof define === "function" && define.amd) { + define(function() { + var module3 = {}; + factory(module3); + return module3; + }); + } else { + factory(CRC32 = {}); + } + } else { + factory(CRC32 = {}); + } + })(function(CRC322) { + CRC322.version = "1.2.2"; + function signed_crc_table() { + var c = 0, table = new Array(256); + for (var n = 0; n != 256; ++n) { + c = n; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + table[n] = c; + } + return typeof Int32Array !== "undefined" ? new Int32Array(table) : table; + } + var T0 = signed_crc_table(); + function slice_by_16_tables(T) { + var c = 0, v = 0, n = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096); + for (n = 0; n != 256; ++n) + table[n] = T[n]; + for (n = 0; n != 256; ++n) { + v = T[n]; + for (c = 256 + n; c < 4096; c += 256) + v = table[c] = v >>> 8 ^ T[v & 255]; + } + var out = []; + for (n = 1; n != 16; ++n) + out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256); + return out; + } + var TT = slice_by_16_tables(T0); + var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4]; + var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9]; + var Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14]; + function crc32_bstr(bstr, seed) { + var C = seed ^ -1; + for (var i = 0, L = bstr.length; i < L; ) + C = C >>> 8 ^ T0[(C ^ bstr.charCodeAt(i++)) & 255]; + return ~C; + } + function crc32_buf(B, seed) { + var C = seed ^ -1, L = B.length - 15, i = 0; + for (; i < L; ) + C = Tf[B[i++] ^ C & 255] ^ Te[B[i++] ^ C >> 8 & 255] ^ Td[B[i++] ^ C >> 16 & 255] ^ Tc[B[i++] ^ C >>> 24] ^ Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^ T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^ T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]]; + L += 15; + while (i < L) + C = C >>> 8 ^ T0[(C ^ B[i++]) & 255]; + return ~C; + } + function crc32_str(str, seed) { + var C = seed ^ -1; + for (var i = 0, L = str.length, c = 0, d = 0; i < L; ) { + c = str.charCodeAt(i++); + if (c < 128) { + C = C >>> 8 ^ T0[(C ^ c) & 255]; + } else if (c < 2048) { + C = C >>> 8 ^ T0[(C ^ (192 | c >> 6 & 31)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } else if (c >= 55296 && c < 57344) { + c = (c & 1023) + 64; + d = str.charCodeAt(i++) & 1023; + C = C >>> 8 ^ T0[(C ^ (240 | c >> 8 & 7)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 2 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d & 63)) & 255]; + } else { + C = C >>> 8 ^ T0[(C ^ (224 | c >> 12 & 15)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 6 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } + } + return ~C; + } + CRC322.table = T0; + CRC322.bstr = crc32_bstr; + CRC322.buf = crc32_buf; + CRC322.str = crc32_str; + }); + } +}); + +// node_modules/pako/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/pako/lib/utils/common.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key2) { + return Object.prototype.hasOwnProperty.call(obj, key2); + } + exports.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports.setTyped = function(on) { + if (on) { + exports.Buf8 = Uint8Array; + exports.Buf16 = Uint16Array; + exports.Buf32 = Int32Array; + exports.assign(exports, fnTyped); + } else { + exports.Buf8 = Array; + exports.Buf16 = Array; + exports.Buf32 = Array; + exports.assign(exports, fnUntyped); + } + }; + exports.setTyped(TYPED_OK); + } +}); + +// node_modules/pako/lib/zlib/trees.js +var require_trees = __commonJS({ + "node_modules/pako/lib/zlib/trees.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]; + var extra_dbits = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]; + var extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]; + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits(s, tree[c * 2], tree[c * 2 + 1]); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + } + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + } + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + } + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[1]; + s.heap[1] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1); + m = s.heap[1]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[1] = node++; + pqdownheap(s, tree, 1); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[1]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + } + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + } + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + } + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last2) { + send_bits(s, (STORED_BLOCK << 1) + (last2 ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last2) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last2); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last2 ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last2 ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last2) { + bi_windup(s); + } + } + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; + } + exports._tr_init = _tr_init; + exports._tr_stored_block = _tr_stored_block; + exports._tr_flush_block = _tr_flush_block; + exports._tr_tally = _tr_tally; + exports._tr_align = _tr_align; + } +}); + +// node_modules/pako/lib/zlib/adler32.js +var require_adler32 = __commonJS({ + "node_modules/pako/lib/zlib/adler32.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module2.exports = adler32; + } +}); + +// node_modules/pako/lib/zlib/crc32.js +var require_crc322 = __commonJS({ + "node_modules/pako/lib/zlib/crc32.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc322(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module2.exports = crc322; + } +}); + +// node_modules/pako/lib/zlib/messages.js +var require_messages = __commonJS({ + "node_modules/pako/lib/zlib/messages.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + module2.exports = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version" + }; + } +}); + +// node_modules/pako/lib/zlib/deflate.js +var require_deflate = __commonJS({ + "node_modules/pako/lib/zlib/deflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var trees = require_trees(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var msg = require_messages(); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last2) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last2); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc322(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + } + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + } + function deflate_stored(s, flush2) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; + } + function deflate_fast(s, flush2) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_slow(s, flush2) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush2) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_huff(s, flush2) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table; + configuration_table = [ + new Config(0, 0, 0, 0, deflate_stored), + new Config(4, 4, 8, 4, deflate_fast), + new Config(4, 5, 16, 8, deflate_fast), + new Config(4, 6, 32, 32, deflate_fast), + new Config(4, 4, 16, 16, deflate_slow), + new Config(8, 16, 32, 32, deflate_slow), + new Config(8, 16, 128, 128, deflate_slow), + new Config(8, 32, 128, 256, deflate_slow), + new Config(32, 128, 258, 1024, deflate_slow), + new Config(32, 258, 258, 4096, deflate_slow) + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + } + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; + } + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate2(strm, flush2) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush2 > Z_BLOCK || flush2 < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush2 !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush2; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16)); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } else { + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush2) <= rank(old_flush) && flush2 !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush2 !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush2) : s.strategy === Z_RLE ? deflate_rle(s, flush2) : configuration_table[s.level].func(s, flush2); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush2 === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush2 !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush2 === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush2 !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + } + function deflateEnd(strm) { + var status2; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status2 = strm.state.status; + if (status2 !== INIT_STATE && status2 !== EXTRA_STATE && status2 !== NAME_STATE && status2 !== COMMENT_STATE && status2 !== HCRC_STATE && status2 !== BUSY_STATE && status2 !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status2 === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + } + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + } + exports.deflateInit = deflateInit; + exports.deflateInit2 = deflateInit2; + exports.deflateReset = deflateReset; + exports.deflateResetKeep = deflateResetKeep; + exports.deflateSetHeader = deflateSetHeader; + exports.deflate = deflate2; + exports.deflateEnd = deflateEnd; + exports.deflateSetDictionary = deflateSetDictionary; + exports.deflateInfo = "pako deflate (from Nodeca project)"; + } +}); + +// node_modules/pako/lib/utils/strings.js +var require_strings = __commonJS({ + "node_modules/pako/lib/utils/strings.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + var q; + _utf8len[254] = _utf8len[254] = 1; + exports.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + } +}); + +// node_modules/pako/lib/zlib/zstream.js +var require_zstream = __commonJS({ + "node_modules/pako/lib/zlib/zstream.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module2.exports = ZStream; + } +}); + +// node_modules/pako/lib/deflate.js +var require_deflate2 = __commonJS({ + "node_modules/pako/lib/deflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var zlib_deflate = require_deflate(); + var utils = require_common(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) + return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_deflate.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status2 = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status2, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_deflate.deflate(strm, _mode); + if (status2 !== Z_STREAM_END && status2 !== Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status2 = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status2) { + if (status2 === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function deflate2(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate2(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate2(input, options); + } + exports.Deflate = Deflate; + exports.deflate = deflate2; + exports.deflateRaw = deflateRaw; + exports.gzip = gzip; + } +}); + +// node_modules/pako/lib/zlib/inffast.js +var require_inffast = __commonJS({ + "node_modules/pako/lib/zlib/inffast.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var BAD = 30; + var TYPE = 12; + module2.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last2; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last2 = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last2 && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last2 ? 5 + (last2 - _in) : 5 - (_in - last2); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + } +}); + +// node_modules/pako/lib/zlib/inftrees.js +var require_inftrees = __commonJS({ + "node_modules/pako/lib/zlib/inftrees.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module2.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root > max) { + root = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root < min) { + root = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + end = 19; + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root; + drop = 0; + low = -1; + used = 1 << root; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root && (huff & mask) !== low) { + if (drop === 0) { + drop = root; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root; + return 0; + }; + } +}); + +// node_modules/pako/lib/zlib/inflate.js +var require_inflate = __commonJS({ + "node_modules/pako/lib/zlib/inflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var inflate_fast = require_inffast(); + var inflate_table = require_inftrees(); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + } + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + } + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix; + var distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + } + function updatewindow(strm, src, end, copy2) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy2 >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy2) { + dist = copy2; + } + utils.arraySet(state.window, src, end - copy2, dist, state.wnext); + copy2 -= dist; + if (copy2) { + utils.arraySet(state.window, src, end - copy2, copy2, 0); + state.wnext = copy2; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate2(strm, flush2) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy2; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc322(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA; + case EXTRA: + if (state.flags & 1024) { + copy2 = state.length; + if (copy2 > have) { + copy2 = have; + } + if (copy2) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet(state.head.extra, input, next, copy2, len); + } + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + state.length -= copy2; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush2 === Z_BLOCK || flush2 === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush2 === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy2 = state.length; + if (copy2) { + if (copy2 > have) { + copy2 = have; + } + if (copy2 > left) { + copy2 = left; + } + if (copy2 === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy2, put); + have -= copy2; + next += copy2; + left -= copy2; + put += copy2; + state.length -= copy2; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy2 = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy2 > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy2--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy2 = _out - left; + if (state.offset > copy2) { + copy2 = state.offset - copy2; + if (copy2 > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy2 > state.wnext) { + copy2 -= state.wnext; + from = state.wsize - copy2; + } else { + from = state.wnext - copy2; + } + if (copy2 > state.length) { + copy2 = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy2 = state.length; + } + if (copy2 > left) { + copy2 = left; + } + left -= copy2; + state.length -= copy2; + do { + output[put++] = from_source[from++]; + } while (--copy2); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = state.flags ? crc322(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush2 !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = state.flags ? crc322(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush2 === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + } + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + } + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + } + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + } + exports.inflateReset = inflateReset; + exports.inflateReset2 = inflateReset2; + exports.inflateResetKeep = inflateResetKeep; + exports.inflateInit = inflateInit; + exports.inflateInit2 = inflateInit2; + exports.inflate = inflate2; + exports.inflateEnd = inflateEnd; + exports.inflateGetHeader = inflateGetHeader; + exports.inflateSetDictionary = inflateSetDictionary; + exports.inflateInfo = "pako inflate (from Nodeca project)"; + } +}); + +// node_modules/pako/lib/zlib/constants.js +var require_constants = __commonJS({ + "node_modules/pako/lib/zlib/constants.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + module2.exports = { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_BUF_ERROR: -5, + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + Z_BINARY: 0, + Z_TEXT: 1, + Z_UNKNOWN: 2, + Z_DEFLATED: 8 + }; + } +}); + +// node_modules/pako/lib/zlib/gzheader.js +var require_gzheader = __commonJS({ + "node_modules/pako/lib/zlib/gzheader.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module2.exports = GZheader; + } +}); + +// node_modules/pako/lib/inflate.js +var require_inflate2 = __commonJS({ + "node_modules/pako/lib/inflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var zlib_inflate = require_inflate(); + var utils = require_common(); + var strings = require_strings(); + var c = require_constants(); + var msg = require_messages(); + var ZStream = require_zstream(); + var GZheader = require_gzheader(); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) + return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_inflate.inflateInit2(this.strm, opt.windowBits); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + } + } + } + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status2, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status2 === c.Z_NEED_DICT && dictionary) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status2 === c.Z_BUF_ERROR && allowBufError === true) { + status2 = c.Z_OK; + allowBufError = false; + } + if (status2 !== c.Z_STREAM_END && status2 !== c.Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status2 === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== c.Z_STREAM_END); + if (status2 === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status2 = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status2) { + if (status2 === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function inflate2(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate2(input, options); + } + exports.Inflate = Inflate; + exports.inflate = inflate2; + exports.inflateRaw = inflateRaw; + exports.ungzip = inflate2; + } +}); + +// node_modules/pako/index.js +var require_pako = __commonJS({ + "node_modules/pako/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var assign2 = require_common().assign; + var deflate2 = require_deflate2(); + var inflate2 = require_inflate2(); + var constants = require_constants(); + var pako2 = {}; + assign2(pako2, deflate2, inflate2, constants); + module2.exports = pako2; + } +}); + +// node_modules/ignore/index.js +var require_ignore = __commonJS({ + "node_modules/ignore/index.js"(exports, module2) { + init_polyfill_buffer(); + function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; + } + var EMPTY = ""; + var SPACE = " "; + var ESCAPE = "\\"; + var REGEX_TEST_BLANK_LINE = /^\s+$/; + var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; + var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; + var REGEX_SPLITALL_CRLF = /\r?\n/g; + var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + var SLASH = "/"; + var KEY_IGNORE = typeof Symbol !== "undefined" ? Symbol.for("node-ignore") : "node-ignore"; + var define2 = (object, key2, value) => Object.defineProperty(object, key2, { value }); + var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + var RETURN_FALSE = () => false; + var sanitizeRange = (range) => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY); + var cleanRangeBackSlash = (slashes) => { + const { length } = slashes; + return slashes.slice(0, length - length % 2); + }; + var REPLACERS = [ + [ + /\\?\s+$/, + (match) => match.indexOf("\\") === 0 ? SPACE : EMPTY + ], + [ + /\\\s/g, + () => SPACE + ], + [ + /[\\$.|*+(){^]/g, + (match) => `\\${match}` + ], + [ + /(?!\\)\?/g, + () => "[^/]" + ], + [ + /^\//, + () => "^" + ], + [ + /\//g, + () => "\\/" + ], + [ + /^\^*\\\*\\\*\\\//, + () => "^(?:.*\\/)?" + ], + [ + /^(?=[^^])/, + function startingReplacer() { + return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; + } + ], + [ + /\\\/\\\*\\\*(?=\\\/|$)/g, + (_, index2, str) => index2 + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" + ], + [ + /(^|[^\\]+)\\\*(?=.+)/g, + (_, p1) => `${p1}[^\\/]*` + ], + [ + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + [ + /\\\\/g, + () => ESCAPE + ], + [ + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" + ], + [ + /(?:[^*])$/, + (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` + ], + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; + } + ] + ]; + var regexCache = Object.create(null); + var makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern]; + if (!source) { + source = REPLACERS.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); + regexCache[pattern] = source; + } + return ignoreCase ? new RegExp(source, "i") : new RegExp(source); + }; + var isString = (subject) => typeof subject === "string"; + var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && pattern.indexOf("#") !== 0; + var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF); + var IgnoreRule = class { + constructor(origin, pattern, negative, regex2) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex2; + } + }; + var createRule = (pattern, ignoreCase) => { + const origin = pattern; + let negative = false; + if (pattern.indexOf("!") === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); + const regex2 = makeRegex(pattern, ignoreCase); + return new IgnoreRule(origin, pattern, negative, regex2); + }; + var throwError = (message, Ctor) => { + throw new Ctor(message); + }; + var checkPath = (path2, originalPath, doThrow) => { + if (!isString(path2)) { + return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); + } + if (!path2) { + return doThrow(`path must not be empty`, TypeError); + } + if (checkPath.isNotRelative(path2)) { + const r = "`path.relative()`d"; + return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); + } + return true; + }; + var isNotRelative = (path2) => REGEX_TEST_INVALID_PATH.test(path2); + checkPath.isNotRelative = isNotRelative; + checkPath.convert = (p) => p; + var Ignore = class { + constructor({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define2(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + this._initCache(); + } + _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); + } + _addPattern(pattern) { + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } + } + add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); + if (this._added) { + this._initCache(); + } + return this; + } + addPattern(pattern) { + return this.add(pattern); + } + _testOne(path2, checkUnignored) { + let ignored = false; + let unignored = false; + this._rules.forEach((rule) => { + const { negative } = rule; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + const matched = rule.regex.test(path2); + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + return { + ignored, + unignored + }; + } + _test(originalPath, cache, checkUnignored, slices) { + const path2 = originalPath && checkPath.convert(originalPath); + checkPath(path2, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError); + return this._t(path2, cache, checkUnignored, slices); + } + _t(path2, cache, checkUnignored, slices) { + if (path2 in cache) { + return cache[path2]; + } + if (!slices) { + slices = path2.split(SLASH); + } + slices.pop(); + if (!slices.length) { + return cache[path2] = this._testOne(path2, checkUnignored); + } + const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); + return cache[path2] = parent.ignored ? parent : this._testOne(path2, checkUnignored); + } + ignores(path2) { + return this._test(path2, this._ignoreCache, false).ignored; + } + createFilter() { + return (path2) => !this.ignores(path2); + } + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + test(path2) { + return this._test(path2, this._testCache, true); + } + }; + var factory = (options) => new Ignore(options); + var isPathValid = (path2) => checkPath(path2 && checkPath.convert(path2), path2, RETURN_FALSE); + factory.isPathValid = isPathValid; + factory.default = factory; + module2.exports = factory; + if (typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) { + const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); + checkPath.convert = makePosix; + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = (path2) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path2) || isNotRelative(path2); + } + } +}); + +// node_modules/pify/index.js +var require_pify = __commonJS({ + "node_modules/pify/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var processFn = (fn, options) => function(...args) { + const P = options.promiseModule; + return new P((resolve, reject) => { + if (options.multiArgs) { + args.push((...result) => { + if (options.errorFirst) { + if (result[0]) { + reject(result); + } else { + result.shift(); + resolve(result); + } + } else { + resolve(result); + } + }); + } else if (options.errorFirst) { + args.push((error, result) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + } else { + args.push(resolve); + } + fn.apply(this, args); + }); + }; + module2.exports = (input, options) => { + options = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, options); + const objType = typeof input; + if (!(input !== null && (objType === "object" || objType === "function"))) { + throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${input === null ? "null" : objType}\``); + } + const filter = (key2) => { + const match = (pattern) => typeof pattern === "string" ? key2 === pattern : pattern.test(key2); + return options.include ? options.include.some(match) : !options.exclude.some(match); + }; + let ret; + if (objType === "function") { + ret = function(...args) { + return options.excludeMain ? input(...args) : processFn(input, options).apply(this, args); + }; + } else { + ret = Object.create(Object.getPrototypeOf(input)); + } + for (const key2 in input) { + const property = input[key2]; + ret[key2] = typeof property === "function" && filter(key2) ? processFn(property, options) : property; + } + return ret; + }; + } +}); + +// node_modules/clean-git-ref/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/clean-git-ref/lib/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function replaceAll(str, search, replacement) { + search = search instanceof RegExp ? search : new RegExp(escapeRegExp(search), "g"); + return str.replace(search, replacement); + } + var CleanGitRef = { + clean: function clean(value) { + if (typeof value !== "string") { + throw new Error("Expected a string, received: " + value); + } + value = replaceAll(value, "./", "/"); + value = replaceAll(value, "..", "."); + value = replaceAll(value, " ", "-"); + value = replaceAll(value, /^[~^:?*\\\-]/g, ""); + value = replaceAll(value, /[~^:?*\\]/g, "-"); + value = replaceAll(value, /[~^:?*\\\-]$/g, ""); + value = replaceAll(value, "@{", "-"); + value = replaceAll(value, /\.$/g, ""); + value = replaceAll(value, /\/$/g, ""); + value = replaceAll(value, /\.lock$/g, ""); + return value; + } + }; + module2.exports = CleanGitRef; + } +}); + +// node_modules/diff3/onp.js +var require_onp = __commonJS({ + "node_modules/diff3/onp.js"(exports, module2) { + init_polyfill_buffer(); + module2.exports = function(a_, b_) { + var a = a_, b = b_, m = a.length, n = b.length, reverse = false, ed = null, offset = m + 1, path2 = [], pathposi = [], ses = [], lcs = "", SES_DELETE = -1, SES_COMMON = 0, SES_ADD = 1; + var tmp1, tmp2; + var init3 = function() { + if (m >= n) { + tmp1 = a; + tmp2 = m; + a = b; + b = tmp1; + m = n; + n = tmp2; + reverse = true; + offset = m + 1; + } + }; + var P = function(x, y, k) { + return { + "x": x, + "y": y, + "k": k + }; + }; + var seselem = function(elem, t) { + return { + "elem": elem, + "t": t + }; + }; + var snake = function(k, p, pp) { + var r, x, y; + if (p > pp) { + r = path2[k - 1 + offset]; + } else { + r = path2[k + 1 + offset]; + } + y = Math.max(p, pp); + x = y - k; + while (x < m && y < n && a[x] === b[y]) { + ++x; + ++y; + } + path2[k + offset] = pathposi.length; + pathposi[pathposi.length] = new P(x, y, r); + return y; + }; + var recordseq = function(epc) { + var x_idx, y_idx, px_idx, py_idx, i; + x_idx = y_idx = 1; + px_idx = py_idx = 0; + for (i = epc.length - 1; i >= 0; --i) { + while (px_idx < epc[i].x || py_idx < epc[i].y) { + if (epc[i].y - epc[i].x > py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(b[py_idx], SES_DELETE); + } else { + ses[ses.length] = new seselem(b[py_idx], SES_ADD); + } + ++y_idx; + ++py_idx; + } else if (epc[i].y - epc[i].x < py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(a[px_idx], SES_ADD); + } else { + ses[ses.length] = new seselem(a[px_idx], SES_DELETE); + } + ++x_idx; + ++px_idx; + } else { + ses[ses.length] = new seselem(a[px_idx], SES_COMMON); + lcs += a[px_idx]; + ++x_idx; + ++y_idx; + ++px_idx; + ++py_idx; + } + } + } + }; + init3(); + return { + SES_DELETE: -1, + SES_COMMON: 0, + SES_ADD: 1, + editdistance: function() { + return ed; + }, + getlcs: function() { + return lcs; + }, + getses: function() { + return ses; + }, + compose: function() { + var delta, size, fp, p, r, epc, i, k; + delta = n - m; + size = m + n + 3; + fp = {}; + for (i = 0; i < size; ++i) { + fp[i] = -1; + path2[i] = -1; + } + p = -1; + do { + ++p; + for (k = -p; k <= delta - 1; ++k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + for (k = delta + p; k >= delta + 1; --k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + fp[delta + offset] = snake(delta, fp[delta - 1 + offset] + 1, fp[delta + 1 + offset]); + } while (fp[delta + offset] !== n); + ed = delta + 2 * p; + r = path2[delta + offset]; + epc = []; + while (r !== -1) { + epc[epc.length] = new P(pathposi[r].x, pathposi[r].y, null); + r = pathposi[r].k; + } + recordseq(epc); + } + }; + }; + } +}); + +// node_modules/diff3/diff3.js +var require_diff3 = __commonJS({ + "node_modules/diff3/diff3.js"(exports, module2) { + init_polyfill_buffer(); + var onp = require_onp(); + function longestCommonSubsequence(file1, file2) { + var diff2 = new onp(file1, file2); + diff2.compose(); + var ses = diff2.getses(); + var root; + var prev; + var file1RevIdx = file1.length - 1, file2RevIdx = file2.length - 1; + for (var i = ses.length - 1; i >= 0; --i) { + if (ses[i].t === diff2.SES_COMMON) { + if (prev) { + prev.chain = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = prev.chain; + } else { + root = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = root; + } + file1RevIdx--; + file2RevIdx--; + } else if (ses[i].t === diff2.SES_DELETE) { + file1RevIdx--; + } else if (ses[i].t === diff2.SES_ADD) { + file2RevIdx--; + } + } + var tail = { + file1index: -1, + file2index: -1, + chain: null + }; + if (!prev) { + return tail; + } + prev.chain = tail; + return root; + } + function diffIndices(file1, file2) { + var result = []; + var tail1 = file1.length; + var tail2 = file2.length; + for (var candidate = longestCommonSubsequence(file1, file2); candidate !== null; candidate = candidate.chain) { + var mismatchLength1 = tail1 - candidate.file1index - 1; + var mismatchLength2 = tail2 - candidate.file2index - 1; + tail1 = candidate.file1index; + tail2 = candidate.file2index; + if (mismatchLength1 || mismatchLength2) { + result.push({ + file1: [tail1 + 1, mismatchLength1], + file2: [tail2 + 1, mismatchLength2] + }); + } + } + result.reverse(); + return result; + } + function diff3MergeIndices(a, o, b) { + var i; + var m1 = diffIndices(o, a); + var m2 = diffIndices(o, b); + var hunks = []; + function addHunk(h, side2) { + hunks.push([h.file1[0], side2, h.file1[1], h.file2[0], h.file2[1]]); + } + for (i = 0; i < m1.length; i++) { + addHunk(m1[i], 0); + } + for (i = 0; i < m2.length; i++) { + addHunk(m2[i], 2); + } + hunks.sort(function(x, y) { + return x[0] - y[0]; + }); + var result = []; + var commonOffset = 0; + function copyCommon(targetOffset) { + if (targetOffset > commonOffset) { + result.push([1, commonOffset, targetOffset - commonOffset]); + commonOffset = targetOffset; + } + } + for (var hunkIndex = 0; hunkIndex < hunks.length; hunkIndex++) { + var firstHunkIndex = hunkIndex; + var hunk = hunks[hunkIndex]; + var regionLhs = hunk[0]; + var regionRhs = regionLhs + hunk[2]; + while (hunkIndex < hunks.length - 1) { + var maybeOverlapping = hunks[hunkIndex + 1]; + var maybeLhs = maybeOverlapping[0]; + if (maybeLhs > regionRhs) + break; + regionRhs = Math.max(regionRhs, maybeLhs + maybeOverlapping[2]); + hunkIndex++; + } + copyCommon(regionLhs); + if (firstHunkIndex == hunkIndex) { + if (hunk[4] > 0) { + result.push([hunk[1], hunk[3], hunk[4]]); + } + } else { + var regions = { + 0: [a.length, -1, o.length, -1], + 2: [b.length, -1, o.length, -1] + }; + for (i = firstHunkIndex; i <= hunkIndex; i++) { + hunk = hunks[i]; + var side = hunk[1]; + var r = regions[side]; + var oLhs = hunk[0]; + var oRhs = oLhs + hunk[2]; + var abLhs = hunk[3]; + var abRhs = abLhs + hunk[4]; + r[0] = Math.min(abLhs, r[0]); + r[1] = Math.max(abRhs, r[1]); + r[2] = Math.min(oLhs, r[2]); + r[3] = Math.max(oRhs, r[3]); + } + var aLhs = regions[0][0] + (regionLhs - regions[0][2]); + var aRhs = regions[0][1] + (regionRhs - regions[0][3]); + var bLhs = regions[2][0] + (regionLhs - regions[2][2]); + var bRhs = regions[2][1] + (regionRhs - regions[2][3]); + result.push([ + -1, + aLhs, + aRhs - aLhs, + regionLhs, + regionRhs - regionLhs, + bLhs, + bRhs - bLhs + ]); + } + commonOffset = regionRhs; + } + copyCommon(o.length); + return result; + } + function diff3Merge2(a, o, b) { + var result = []; + var files = [a, o, b]; + var indices = diff3MergeIndices(a, o, b); + var okLines = []; + function flushOk() { + if (okLines.length) { + result.push({ + ok: okLines + }); + } + okLines = []; + } + function pushOk(xs) { + for (var j = 0; j < xs.length; j++) { + okLines.push(xs[j]); + } + } + function isTrueConflict(rec) { + if (rec[2] != rec[6]) + return true; + var aoff = rec[1]; + var boff = rec[5]; + for (var j = 0; j < rec[2]; j++) { + if (a[j + aoff] != b[j + boff]) + return true; + } + return false; + } + for (var i = 0; i < indices.length; i++) { + var x = indices[i]; + var side = x[0]; + if (side == -1) { + if (!isTrueConflict(x)) { + pushOk(files[0].slice(x[1], x[1] + x[2])); + } else { + flushOk(); + result.push({ + conflict: { + a: a.slice(x[1], x[1] + x[2]), + aIndex: x[1], + o: o.slice(x[3], x[3] + x[4]), + oIndex: x[3], + b: b.slice(x[5], x[5] + x[6]), + bIndex: x[5] + } + }); + } + } else { + pushOk(files[side].slice(x[1], x[1] + x[2])); + } + } + flushOk(); + return result; + } + module2.exports = diff3Merge2; + } +}); + +// node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/ms/index.js"(exports, module2) { + init_polyfill_buffer(); + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse2(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse2(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/debug/src/common.js +var require_common2 = __commonJS({ + "node_modules/debug/src/common.js"(exports, module2) { + init_polyfill_buffer(); + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key2) => { + createDebug[key2] = env[key2]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash2 = 0; + for (let i = 0; i < namespace.length; i++) { + hash2 = (hash2 << 5) - hash2 + namespace.charCodeAt(i); + hash2 |= 0; + } + return createDebug.colors[Math.abs(hash2) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug2(...args) { + if (!debug2.enabled) { + return; + } + const self3 = debug2; + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self3.diff = ms; + self3.prev = prevTime; + self3.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index2 = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index2++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index2]; + match = formatter.call(self3, val); + args.splice(index2, 1); + index2--; + } + return match; + }); + createDebug.formatArgs.call(self3, args); + const logFn = self3.log || createDebug.log; + logFn.apply(self3, args); + } + debug2.namespace = namespace; + debug2.useColors = createDebug.useColors(); + debug2.color = createDebug.selectColor(namespace); + debug2.extend = extend; + debug2.destroy = createDebug.destroy; + Object.defineProperty(debug2, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug2); + } + return debug2; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + let i; + const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + const len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) { + continue; + } + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); + } else { + createDebug.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + let i; + let len; + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + return false; + } + function toNamespace(regexp) { + return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module2.exports = setup; + } +}); + +// node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/debug/src/browser.js"(exports, module2) { + init_polyfill_buffer(); + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index2 = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index2++; + if (match === "%c") { + lastC = index2; + } + }); + args.splice(lastC, 0, c); + } + exports.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports.storage.getItem("debug"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module2.exports = require_common2()(exports); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// node_modules/@kwsites/file-exists/dist/src/index.js +var require_src = __commonJS({ + "node_modules/@kwsites/file-exists/dist/src/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + var fs_1 = require("fs"); + var debug_1 = __importDefault(require_browser()); + var log2 = debug_1.default("@kwsites/file-exists"); + function check(path2, isFile, isDirectory) { + log2(`checking %s`, path2); + try { + const stat = fs_1.statSync(path2); + if (stat.isFile() && isFile) { + log2(`[OK] path represents a file`); + return true; + } + if (stat.isDirectory() && isDirectory) { + log2(`[OK] path represents a directory`); + return true; + } + log2(`[FAIL] path represents something other than a file or directory`); + return false; + } catch (e) { + if (e.code === "ENOENT") { + log2(`[FAIL] path is not accessible: %o`, e); + return false; + } + log2(`[FATAL] %o`, e); + throw e; + } + } + function exists2(path2, type = exports.READABLE) { + return check(path2, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); + } + exports.exists = exists2; + exports.FILE = 1; + exports.FOLDER = 2; + exports.READABLE = exports.FILE + exports.FOLDER; + } +}); + +// node_modules/@kwsites/file-exists/dist/index.js +var require_dist = __commonJS({ + "node_modules/@kwsites/file-exists/dist/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + function __export3(m) { + for (var p in m) + if (!exports.hasOwnProperty(p)) + exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export3(require_src()); + } +}); + +// node_modules/@kwsites/promise-deferred/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/@kwsites/promise-deferred/dist/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createDeferred = exports.deferred = void 0; + function deferred2() { + let done; + let fail; + let status2 = "pending"; + const promise2 = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise: promise2, + done(result) { + if (status2 === "pending") { + status2 = "resolved"; + done(result); + } + }, + fail(error) { + if (status2 === "pending") { + status2 = "rejected"; + fail(error); + } + }, + get fulfilled() { + return status2 !== "pending"; + }, + get status() { + return status2; + } + }; + } + exports.deferred = deferred2; + exports.createDeferred = deferred2; + exports.default = deferred2; + } +}); + +// node_modules/hogan.js/lib/compiler.js +var require_compiler = __commonJS({ + "node_modules/hogan.js/lib/compiler.js"(exports) { + init_polyfill_buffer(); + (function(Hogan4) { + var rIsWhitespace = /\S/, rQuot = /\"/g, rNewline = /\n/g, rCr = /\r/g, rSlash = /\\/g, rLineSep = /\u2028/, rParagraphSep = /\u2029/; + Hogan4.tags = { + "#": 1, + "^": 2, + "<": 3, + "$": 4, + "/": 5, + "!": 6, + ">": 7, + "=": 8, + "_v": 9, + "{": 10, + "&": 11, + "_t": 12 + }; + Hogan4.scan = function scan(text2, delimiters) { + var len = text2.length, IN_TEXT = 0, IN_TAG_TYPE = 1, IN_TAG = 2, state = IN_TEXT, tagType = null, tag2 = null, buf = "", tokens = [], seenTag = false, i = 0, lineStart = 0, otag = "{{", ctag = "}}"; + function addBuf() { + if (buf.length > 0) { + tokens.push({ tag: "_t", text: new String(buf) }); + buf = ""; + } + } + function lineIsWhitespace() { + var isAllWhitespace = true; + for (var j = lineStart; j < tokens.length; j++) { + isAllWhitespace = Hogan4.tags[tokens[j].tag] < Hogan4.tags["_v"] || tokens[j].tag == "_t" && tokens[j].text.match(rIsWhitespace) === null; + if (!isAllWhitespace) { + return false; + } + } + return isAllWhitespace; + } + function filterLine(haveSeenTag, noNewLine) { + addBuf(); + if (haveSeenTag && lineIsWhitespace()) { + for (var j = lineStart, next; j < tokens.length; j++) { + if (tokens[j].text) { + if ((next = tokens[j + 1]) && next.tag == ">") { + next.indent = tokens[j].text.toString(); + } + tokens.splice(j, 1); + } + } + } else if (!noNewLine) { + tokens.push({ tag: "\n" }); + } + seenTag = false; + lineStart = tokens.length; + } + function changeDelimiters(text3, index2) { + var close = "=" + ctag, closeIndex = text3.indexOf(close, index2), delimiters2 = trim(text3.substring(text3.indexOf("=", index2) + 1, closeIndex)).split(" "); + otag = delimiters2[0]; + ctag = delimiters2[delimiters2.length - 1]; + return closeIndex + close.length - 1; + } + if (delimiters) { + delimiters = delimiters.split(" "); + otag = delimiters[0]; + ctag = delimiters[1]; + } + for (i = 0; i < len; i++) { + if (state == IN_TEXT) { + if (tagChange(otag, text2, i)) { + --i; + addBuf(); + state = IN_TAG_TYPE; + } else { + if (text2.charAt(i) == "\n") { + filterLine(seenTag); + } else { + buf += text2.charAt(i); + } + } + } else if (state == IN_TAG_TYPE) { + i += otag.length - 1; + tag2 = Hogan4.tags[text2.charAt(i + 1)]; + tagType = tag2 ? text2.charAt(i + 1) : "_v"; + if (tagType == "=") { + i = changeDelimiters(text2, i); + state = IN_TEXT; + } else { + if (tag2) { + i++; + } + state = IN_TAG; + } + seenTag = i; + } else { + if (tagChange(ctag, text2, i)) { + tokens.push({ + tag: tagType, + n: trim(buf), + otag, + ctag, + i: tagType == "/" ? seenTag - otag.length : i + ctag.length + }); + buf = ""; + i += ctag.length - 1; + state = IN_TEXT; + if (tagType == "{") { + if (ctag == "}}") { + i++; + } else { + cleanTripleStache(tokens[tokens.length - 1]); + } + } + } else { + buf += text2.charAt(i); + } + } + } + filterLine(seenTag, true); + return tokens; + }; + function cleanTripleStache(token) { + if (token.n.substr(token.n.length - 1) === "}") { + token.n = token.n.substring(0, token.n.length - 1); + } + } + function trim(s) { + if (s.trim) { + return s.trim(); + } + return s.replace(/^\s*|\s*$/g, ""); + } + function tagChange(tag2, text2, index2) { + if (text2.charAt(index2) != tag2.charAt(0)) { + return false; + } + for (var i = 1, l = tag2.length; i < l; i++) { + if (text2.charAt(index2 + i) != tag2.charAt(i)) { + return false; + } + } + return true; + } + var allowedInSuper = { "_t": true, "\n": true, "$": true, "/": true }; + function buildTree(tokens, kind, stack, customTags) { + var instructions = [], opener = null, tail = null, token = null; + tail = stack[stack.length - 1]; + while (tokens.length > 0) { + token = tokens.shift(); + if (tail && tail.tag == "<" && !(token.tag in allowedInSuper)) { + throw new Error("Illegal content in < super tag."); + } + if (Hogan4.tags[token.tag] <= Hogan4.tags["$"] || isOpener(token, customTags)) { + stack.push(token); + token.nodes = buildTree(tokens, token.tag, stack, customTags); + } else if (token.tag == "/") { + if (stack.length === 0) { + throw new Error("Closing tag without opener: /" + token.n); + } + opener = stack.pop(); + if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) { + throw new Error("Nesting error: " + opener.n + " vs. " + token.n); + } + opener.end = token.i; + return instructions; + } else if (token.tag == "\n") { + token.last = tokens.length == 0 || tokens[0].tag == "\n"; + } + instructions.push(token); + } + if (stack.length > 0) { + throw new Error("missing closing tag: " + stack.pop().n); + } + return instructions; + } + function isOpener(token, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].o == token.n) { + token.tag = "#"; + return true; + } + } + } + function isCloser(close, open, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].c == close && tags[i].o == open) { + return true; + } + } + } + function stringifySubstitutions(obj) { + var items = []; + for (var key2 in obj) { + items.push('"' + esc(key2) + '": function(c,p,t,i) {' + obj[key2] + "}"); + } + return "{ " + items.join(",") + " }"; + } + function stringifyPartials(codeObj) { + var partials = []; + for (var key2 in codeObj.partials) { + partials.push('"' + esc(key2) + '":{name:"' + esc(codeObj.partials[key2].name) + '", ' + stringifyPartials(codeObj.partials[key2]) + "}"); + } + return "partials: {" + partials.join(",") + "}, subs: " + stringifySubstitutions(codeObj.subs); + } + Hogan4.stringify = function(codeObj, text2, options) { + return "{code: function (c,p,i) { " + Hogan4.wrapMain(codeObj.code) + " }," + stringifyPartials(codeObj) + "}"; + }; + var serialNo = 0; + Hogan4.generate = function(tree, text2, options) { + serialNo = 0; + var context = { code: "", subs: {}, partials: {} }; + Hogan4.walk(tree, context); + if (options.asString) { + return this.stringify(context, text2, options); + } + return this.makeTemplate(context, text2, options); + }; + Hogan4.wrapMain = function(code) { + return 'var t=this;t.b(i=i||"");' + code + "return t.fl();"; + }; + Hogan4.template = Hogan4.Template; + Hogan4.makeTemplate = function(codeObj, text2, options) { + var template = this.makePartials(codeObj); + template.code = new Function("c", "p", "i", this.wrapMain(codeObj.code)); + return new this.template(template, text2, this, options); + }; + Hogan4.makePartials = function(codeObj) { + var key2, template = { subs: {}, partials: codeObj.partials, name: codeObj.name }; + for (key2 in template.partials) { + template.partials[key2] = this.makePartials(template.partials[key2]); + } + for (key2 in codeObj.subs) { + template.subs[key2] = new Function("c", "p", "t", "i", codeObj.subs[key2]); + } + return template; + }; + function esc(s) { + return s.replace(rSlash, "\\\\").replace(rQuot, '\\"').replace(rNewline, "\\n").replace(rCr, "\\r").replace(rLineSep, "\\u2028").replace(rParagraphSep, "\\u2029"); + } + function chooseMethod(s) { + return ~s.indexOf(".") ? "d" : "f"; + } + function createPartial(node, context) { + var prefix = "<" + (context.prefix || ""); + var sym = prefix + node.n + serialNo++; + context.partials[sym] = { name: node.n, partials: {} }; + context.code += 't.b(t.rp("' + esc(sym) + '",c,p,"' + (node.indent || "") + '"));'; + return sym; + } + Hogan4.codegen = { + "#": function(node, context) { + context.code += "if(t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,0,' + node.i + "," + node.end + ',"' + node.otag + " " + node.ctag + '")){t.rs(c,p,function(c,p,t){'; + Hogan4.walk(node.nodes, context); + context.code += "});c.pop();}"; + }, + "^": function(node, context) { + context.code += "if(!t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,1,0,0,"")){'; + Hogan4.walk(node.nodes, context); + context.code += "};"; + }, + ">": createPartial, + "<": function(node, context) { + var ctx = { partials: {}, code: "", subs: {}, inPartial: true }; + Hogan4.walk(node.nodes, ctx); + var template = context.partials[createPartial(node, context)]; + template.subs = ctx.subs; + template.partials = ctx.partials; + }, + "$": function(node, context) { + var ctx = { subs: {}, code: "", partials: context.partials, prefix: node.n }; + Hogan4.walk(node.nodes, ctx); + context.subs[node.n] = ctx.code; + if (!context.inPartial) { + context.code += 't.sub("' + esc(node.n) + '",c,p,i);'; + } + }, + "\n": function(node, context) { + context.code += write('"\\n"' + (node.last ? "" : " + i")); + }, + "_v": function(node, context) { + context.code += "t.b(t.v(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + }, + "_t": function(node, context) { + context.code += write('"' + esc(node.text) + '"'); + }, + "{": tripleStache, + "&": tripleStache + }; + function tripleStache(node, context) { + context.code += "t.b(t.t(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + } + function write(s) { + return "t.b(" + s + ");"; + } + Hogan4.walk = function(nodelist, context) { + var func; + for (var i = 0, l = nodelist.length; i < l; i++) { + func = Hogan4.codegen[nodelist[i].tag]; + func && func(nodelist[i], context); + } + return context; + }; + Hogan4.parse = function(tokens, text2, options) { + options = options || {}; + return buildTree(tokens, "", [], options.sectionTags || []); + }; + Hogan4.cache = {}; + Hogan4.cacheKey = function(text2, options) { + return [text2, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join("||"); + }; + Hogan4.compile = function(text2, options) { + options = options || {}; + var key2 = Hogan4.cacheKey(text2, options); + var template = this.cache[key2]; + if (template) { + var partials = template.partials; + for (var name in partials) { + delete partials[name].instance; + } + return template; + } + template = this.generate(this.parse(this.scan(text2, options.delimiters), text2, options), text2, options); + return this.cache[key2] = template; + }; + })(typeof exports !== "undefined" ? exports : Hogan); + } +}); + +// node_modules/hogan.js/lib/template.js +var require_template = __commonJS({ + "node_modules/hogan.js/lib/template.js"(exports) { + init_polyfill_buffer(); + var Hogan4 = {}; + (function(Hogan5) { + Hogan5.Template = function(codeObj, text2, compiler, options) { + codeObj = codeObj || {}; + this.r = codeObj.code || this.r; + this.c = compiler; + this.options = options || {}; + this.text = text2 || ""; + this.partials = codeObj.partials || {}; + this.subs = codeObj.subs || {}; + this.buf = ""; + }; + Hogan5.Template.prototype = { + r: function(context, partials, indent2) { + return ""; + }, + v: hoganEscape, + t: coerceToString, + render: function render2(context, partials, indent2) { + return this.ri([context], partials || {}, indent2); + }, + ri: function(context, partials, indent2) { + return this.r(context, partials, indent2); + }, + ep: function(symbol, partials) { + var partial = this.partials[symbol]; + var template = partials[partial.name]; + if (partial.instance && partial.base == template) { + return partial.instance; + } + if (typeof template == "string") { + if (!this.c) { + throw new Error("No compiler available."); + } + template = this.c.compile(template, this.options); + } + if (!template) { + return null; + } + this.partials[symbol].base = template; + if (partial.subs) { + if (!partials.stackText) + partials.stackText = {}; + for (key in partial.subs) { + if (!partials.stackText[key]) { + partials.stackText[key] = this.activeSub !== void 0 && partials.stackText[this.activeSub] ? partials.stackText[this.activeSub] : this.text; + } + } + template = createSpecializedPartial(template, partial.subs, partial.partials, this.stackSubs, this.stackPartials, partials.stackText); + } + this.partials[symbol].instance = template; + return template; + }, + rp: function(symbol, context, partials, indent2) { + var partial = this.ep(symbol, partials); + if (!partial) { + return ""; + } + return partial.ri(context, partials, indent2); + }, + rs: function(context, partials, section) { + var tail = context[context.length - 1]; + if (!isArray(tail)) { + section(context, partials, this); + return; + } + for (var i = 0; i < tail.length; i++) { + context.push(tail[i]); + section(context, partials, this); + context.pop(); + } + }, + s: function(val, ctx, partials, inverted, start, end, tags) { + var pass; + if (isArray(val) && val.length === 0) { + return false; + } + if (typeof val == "function") { + val = this.ms(val, ctx, partials, inverted, start, end, tags); + } + pass = !!val; + if (!inverted && pass && ctx) { + ctx.push(typeof val == "object" ? val : ctx[ctx.length - 1]); + } + return pass; + }, + d: function(key2, ctx, partials, returnFound) { + var found, names = key2.split("."), val = this.f(names[0], ctx, partials, returnFound), doModelGet = this.options.modelGet, cx = null; + if (key2 === "." && isArray(ctx[ctx.length - 2])) { + val = ctx[ctx.length - 1]; + } else { + for (var i = 1; i < names.length; i++) { + found = findInScope(names[i], val, doModelGet); + if (found !== void 0) { + cx = val; + val = found; + } else { + val = ""; + } + } + } + if (returnFound && !val) { + return false; + } + if (!returnFound && typeof val == "function") { + ctx.push(cx); + val = this.mv(val, ctx, partials); + ctx.pop(); + } + return val; + }, + f: function(key2, ctx, partials, returnFound) { + var val = false, v = null, found = false, doModelGet = this.options.modelGet; + for (var i = ctx.length - 1; i >= 0; i--) { + v = ctx[i]; + val = findInScope(key2, v, doModelGet); + if (val !== void 0) { + found = true; + break; + } + } + if (!found) { + return returnFound ? false : ""; + } + if (!returnFound && typeof val == "function") { + val = this.mv(val, ctx, partials); + } + return val; + }, + ls: function(func, cx, partials, text2, tags) { + var oldTags = this.options.delimiters; + this.options.delimiters = tags; + this.b(this.ct(coerceToString(func.call(cx, text2)), cx, partials)); + this.options.delimiters = oldTags; + return false; + }, + ct: function(text2, cx, partials) { + if (this.options.disableLambda) { + throw new Error("Lambda features disabled."); + } + return this.c.compile(text2, this.options).render(cx, partials); + }, + b: function(s) { + this.buf += s; + }, + fl: function() { + var r = this.buf; + this.buf = ""; + return r; + }, + ms: function(func, ctx, partials, inverted, start, end, tags) { + var textSource, cx = ctx[ctx.length - 1], result = func.call(cx); + if (typeof result == "function") { + if (inverted) { + return true; + } else { + textSource = this.activeSub && this.subsText && this.subsText[this.activeSub] ? this.subsText[this.activeSub] : this.text; + return this.ls(result, cx, partials, textSource.substring(start, end), tags); + } + } + return result; + }, + mv: function(func, ctx, partials) { + var cx = ctx[ctx.length - 1]; + var result = func.call(cx); + if (typeof result == "function") { + return this.ct(coerceToString(result.call(cx)), cx, partials); + } + return result; + }, + sub: function(name, context, partials, indent2) { + var f = this.subs[name]; + if (f) { + this.activeSub = name; + f(context, partials, this, indent2); + this.activeSub = false; + } + } + }; + function findInScope(key2, scope, doModelGet) { + var val; + if (scope && typeof scope == "object") { + if (scope[key2] !== void 0) { + val = scope[key2]; + } else if (doModelGet && scope.get && typeof scope.get == "function") { + val = scope.get(key2); + } + } + return val; + } + function createSpecializedPartial(instance6, subs, partials, stackSubs, stackPartials, stackText) { + function PartialTemplate() { + } + ; + PartialTemplate.prototype = instance6; + function Substitutions() { + } + ; + Substitutions.prototype = instance6.subs; + var key2; + var partial = new PartialTemplate(); + partial.subs = new Substitutions(); + partial.subsText = {}; + partial.buf = ""; + stackSubs = stackSubs || {}; + partial.stackSubs = stackSubs; + partial.subsText = stackText; + for (key2 in subs) { + if (!stackSubs[key2]) + stackSubs[key2] = subs[key2]; + } + for (key2 in stackSubs) { + partial.subs[key2] = stackSubs[key2]; + } + stackPartials = stackPartials || {}; + partial.stackPartials = stackPartials; + for (key2 in partials) { + if (!stackPartials[key2]) + stackPartials[key2] = partials[key2]; + } + for (key2 in stackPartials) { + partial.partials[key2] = stackPartials[key2]; + } + return partial; + } + var rAmp = /&/g, rLt = //g, rApos = /\'/g, rQuot = /\"/g, hChars = /[&<>\"\']/; + function coerceToString(val) { + return String(val === null || val === void 0 ? "" : val); + } + function hoganEscape(str) { + str = coerceToString(str); + return hChars.test(str) ? str.replace(rAmp, "&").replace(rLt, "<").replace(rGt, ">").replace(rApos, "'").replace(rQuot, """) : str; + } + var isArray = Array.isArray || function(a) { + return Object.prototype.toString.call(a) === "[object Array]"; + }; + })(typeof exports !== "undefined" ? exports : Hogan4); + } +}); + +// node_modules/hogan.js/lib/hogan.js +var require_hogan = __commonJS({ + "node_modules/hogan.js/lib/hogan.js"(exports, module2) { + init_polyfill_buffer(); + var Hogan4 = require_compiler(); + Hogan4.Template = require_template().Template; + Hogan4.template = Hogan4.Template; + module2.exports = Hogan4; + } +}); + +// node_modules/feather-icons/dist/feather.js +var require_feather = __commonJS({ + "node_modules/feather-icons/dist/feather.js"(exports, module2) { + init_polyfill_buffer(); + (function webpackUniversalModuleDefinition(root, factory) { + if (typeof exports === "object" && typeof module2 === "object") + module2.exports = factory(); + else if (typeof define === "function" && define.amd) + define([], factory); + else if (typeof exports === "object") + exports["feather"] = factory(); + else + root["feather"] = factory(); + })(typeof self !== "undefined" ? self : exports, function() { + return function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module3 = installedModules[moduleId] = { + i: moduleId, + l: false, + exports: {} + }; + modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); + module3.l = true; + return module3.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.d = function(exports2, name, getter) { + if (!__webpack_require__.o(exports2, name)) { + Object.defineProperty(exports2, name, { + configurable: false, + enumerable: true, + get: getter + }); + } + }; + __webpack_require__.r = function(exports2) { + Object.defineProperty(exports2, "__esModule", { value: true }); + }; + __webpack_require__.n = function(module3) { + var getter = module3 && module3.__esModule ? function getDefault() { + return module3["default"]; + } : function getModuleExports() { + return module3; + }; + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 0); + }({ + "./dist/icons.json": function(module3) { + module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "table": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; + }, + "./node_modules/classnames/dedupe.js": function(module3, exports2, __webpack_require__) { + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + "use strict"; + var classNames = function() { + function StorageObject() { + } + StorageObject.prototype = Object.create(null); + function _parseArray(resultSet, array) { + var length = array.length; + for (var i = 0; i < length; ++i) { + _parse(resultSet, array[i]); + } + } + var hasOwn = {}.hasOwnProperty; + function _parseNumber(resultSet, num2) { + resultSet[num2] = true; + } + function _parseObject(resultSet, object) { + for (var k in object) { + if (hasOwn.call(object, k)) { + resultSet[k] = !!object[k]; + } + } + } + var SPACE = /\s+/; + function _parseString(resultSet, str) { + var array = str.split(SPACE); + var length = array.length; + for (var i = 0; i < length; ++i) { + resultSet[array[i]] = true; + } + } + function _parse(resultSet, arg) { + if (!arg) + return; + var argType = typeof arg; + if (argType === "string") { + _parseString(resultSet, arg); + } else if (Array.isArray(arg)) { + _parseArray(resultSet, arg); + } else if (argType === "object") { + _parseObject(resultSet, arg); + } else if (argType === "number") { + _parseNumber(resultSet, arg); + } + } + function _classNames() { + var len = arguments.length; + var args = Array(len); + for (var i = 0; i < len; i++) { + args[i] = arguments[i]; + } + var classSet = new StorageObject(); + _parseArray(classSet, args); + var list = []; + for (var k in classSet) { + if (classSet[k]) { + list.push(k); + } + } + return list.join(" "); + } + return _classNames; + }(); + if (typeof module3 !== "undefined" && module3.exports) { + module3.exports = classNames; + } else if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return classNames; + }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + } + })(); + }, + "./node_modules/core-js/es/array/from.js": function(module3, exports2, __webpack_require__) { + __webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"); + __webpack_require__("./node_modules/core-js/modules/es.array.from.js"); + var path2 = __webpack_require__("./node_modules/core-js/internals/path.js"); + module3.exports = path2.Array.from; + }, + "./node_modules/core-js/internals/a-function.js": function(module3, exports2) { + module3.exports = function(it) { + if (typeof it != "function") { + throw TypeError(String(it) + " is not a function"); + } + return it; + }; + }, + "./node_modules/core-js/internals/an-object.js": function(module3, exports2, __webpack_require__) { + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + module3.exports = function(it) { + if (!isObject(it)) { + throw TypeError(String(it) + " is not an object"); + } + return it; + }; + }, + "./node_modules/core-js/internals/array-from.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var bind = __webpack_require__("./node_modules/core-js/internals/bind-context.js"); + var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js"); + var callWithSafeIterationClosing = __webpack_require__("./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); + var isArrayIteratorMethod = __webpack_require__("./node_modules/core-js/internals/is-array-iterator-method.js"); + var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js"); + var createProperty = __webpack_require__("./node_modules/core-js/internals/create-property.js"); + var getIteratorMethod = __webpack_require__("./node_modules/core-js/internals/get-iterator-method.js"); + module3.exports = function from(arrayLike) { + var O = toObject(arrayLike); + var C = typeof this == "function" ? this : Array; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : void 0; + var mapping = mapfn !== void 0; + var index2 = 0; + var iteratorMethod = getIteratorMethod(O); + var length, result, step, iterator; + if (mapping) + mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : void 0, 2); + if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = iteratorMethod.call(O); + result = new C(); + for (; !(step = iterator.next()).done; index2++) { + createProperty(result, index2, mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index2], true) : step.value); + } + } else { + length = toLength(O.length); + result = new C(length); + for (; length > index2; index2++) { + createProperty(result, index2, mapping ? mapfn(O[index2], index2) : O[index2]); + } + } + result.length = index2; + return result; + }; + }, + "./node_modules/core-js/internals/array-includes.js": function(module3, exports2, __webpack_require__) { + var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); + var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js"); + var toAbsoluteIndex = __webpack_require__("./node_modules/core-js/internals/to-absolute-index.js"); + module3.exports = function(IS_INCLUDES) { + return function($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index2 = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) + while (length > index2) { + value = O[index2++]; + if (value != value) + return true; + } + else + for (; length > index2; index2++) + if (IS_INCLUDES || index2 in O) { + if (O[index2] === el) + return IS_INCLUDES || index2 || 0; + } + return !IS_INCLUDES && -1; + }; + }; + }, + "./node_modules/core-js/internals/bind-context.js": function(module3, exports2, __webpack_require__) { + var aFunction = __webpack_require__("./node_modules/core-js/internals/a-function.js"); + module3.exports = function(fn, that, length) { + aFunction(fn); + if (that === void 0) + return fn; + switch (length) { + case 0: + return function() { + return fn.call(that); + }; + case 1: + return function(a) { + return fn.call(that, a); + }; + case 2: + return function(a, b) { + return fn.call(that, a, b); + }; + case 3: + return function(a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function() { + return fn.apply(that, arguments); + }; + }; + }, + "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": function(module3, exports2, __webpack_require__) { + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + module3.exports = function(iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + var returnMethod = iterator["return"]; + if (returnMethod !== void 0) + anObject(returnMethod.call(iterator)); + throw error; + } + }; + }, + "./node_modules/core-js/internals/check-correctness-of-iteration.js": function(module3, exports2, __webpack_require__) { + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var ITERATOR = wellKnownSymbol("iterator"); + var SAFE_CLOSING = false; + try { + var called = 0; + var iteratorWithReturn = { + next: function() { + return { done: !!called++ }; + }, + "return": function() { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function() { + return this; + }; + Array.from(iteratorWithReturn, function() { + throw 2; + }); + } catch (error) { + } + module3.exports = function(exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) + return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function() { + return { + next: function() { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { + } + return ITERATION_SUPPORT; + }; + }, + "./node_modules/core-js/internals/classof-raw.js": function(module3, exports2) { + var toString = {}.toString; + module3.exports = function(it) { + return toString.call(it).slice(8, -1); + }; + }, + "./node_modules/core-js/internals/classof.js": function(module3, exports2, __webpack_require__) { + var classofRaw = __webpack_require__("./node_modules/core-js/internals/classof-raw.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var CORRECT_ARGUMENTS = classofRaw(function() { + return arguments; + }()) == "Arguments"; + var tryGet = function(it, key2) { + try { + return it[key2]; + } catch (error) { + } + }; + module3.exports = function(it) { + var O, tag2, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag2 = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag2 : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; + }; + }, + "./node_modules/core-js/internals/copy-constructor-properties.js": function(module3, exports2, __webpack_require__) { + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var ownKeys = __webpack_require__("./node_modules/core-js/internals/own-keys.js"); + var getOwnPropertyDescriptorModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + module3.exports = function(target, source) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key2 = keys[i]; + if (!has(target, key2)) + defineProperty(target, key2, getOwnPropertyDescriptor(source, key2)); + } + }; + }, + "./node_modules/core-js/internals/correct-prototype-getter.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + module3.exports = !fails(function() { + function F() { + } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + }, + "./node_modules/core-js/internals/create-iterator-constructor.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var IteratorPrototype = __webpack_require__("./node_modules/core-js/internals/iterators-core.js").IteratorPrototype; + var create = __webpack_require__("./node_modules/core-js/internals/object-create.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var returnThis = function() { + return this; + }; + module3.exports = function(IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + " Iterator"; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; + }; + }, + "./node_modules/core-js/internals/create-property-descriptor.js": function(module3, exports2) { + module3.exports = function(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value + }; + }; + }, + "./node_modules/core-js/internals/create-property.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + module3.exports = function(object, key2, value) { + var propertyKey = toPrimitive(key2); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; + }; + }, + "./node_modules/core-js/internals/define-iterator.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var $ = __webpack_require__("./node_modules/core-js/internals/export.js"); + var createIteratorConstructor = __webpack_require__("./node_modules/core-js/internals/create-iterator-constructor.js"); + var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js"); + var setPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-set-prototype-of.js"); + var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var IteratorsCore = __webpack_require__("./node_modules/core-js/internals/iterators-core.js"); + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR = wellKnownSymbol("iterator"); + var KEYS = "keys"; + var VALUES = "values"; + var ENTRIES = "entries"; + var returnThis = function() { + return this; + }; + module3.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + var getIterationMethod = function(KIND) { + if (KIND === DEFAULT && defaultIterator) + return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) + return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: + return function keys() { + return new IteratorConstructor(this, KIND); + }; + case VALUES: + return function values() { + return new IteratorConstructor(this, KIND); + }; + case ENTRIES: + return function entries() { + return new IteratorConstructor(this, KIND); + }; + } + return function() { + return new IteratorConstructor(this); + }; + }; + var TO_STRING_TAG = NAME + " Iterator"; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (typeof CurrentIteratorPrototype[ITERATOR] != "function") { + hide(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) + Iterators[TO_STRING_TAG] = returnThis; + } + } + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { + return nativeIterator.call(this); + }; + } + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + hide(IterablePrototype, ITERATOR, defaultIterator); + } + Iterators[NAME] = defaultIterator; + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) + for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } + else + $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + return methods; + }; + }, + "./node_modules/core-js/internals/descriptors.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + module3.exports = !fails(function() { + return Object.defineProperty({}, "a", { get: function() { + return 7; + } }).a != 7; + }); + }, + "./node_modules/core-js/internals/document-create-element.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + var document2 = global2.document; + var exist = isObject(document2) && isObject(document2.createElement); + module3.exports = function(it) { + return exist ? document2.createElement(it) : {}; + }; + }, + "./node_modules/core-js/internals/enum-bug-keys.js": function(module3, exports2) { + module3.exports = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf" + ]; + }, + "./node_modules/core-js/internals/export.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var getOwnPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js"); + var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); + var copyConstructorProperties = __webpack_require__("./node_modules/core-js/internals/copy-constructor-properties.js"); + var isForced = __webpack_require__("./node_modules/core-js/internals/is-forced.js"); + module3.exports = function(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key2, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global2; + } else if (STATIC) { + target = global2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global2[TARGET] || {}).prototype; + } + if (target) + for (key2 in source) { + sourceProperty = source[key2]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key2); + targetProperty = descriptor && descriptor.value; + } else + targetProperty = target[key2]; + FORCED = isForced(GLOBAL ? key2 : TARGET + (STATIC ? "." : "#") + key2, options.forced); + if (!FORCED && targetProperty !== void 0) { + if (typeof sourceProperty === typeof targetProperty) + continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + hide(sourceProperty, "sham", true); + } + redefine(target, key2, sourceProperty, options); + } + }; + }, + "./node_modules/core-js/internals/fails.js": function(module3, exports2) { + module3.exports = function(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + }, + "./node_modules/core-js/internals/function-to-string.js": function(module3, exports2, __webpack_require__) { + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + module3.exports = shared("native-function-to-string", Function.toString); + }, + "./node_modules/core-js/internals/get-iterator-method.js": function(module3, exports2, __webpack_require__) { + var classof = __webpack_require__("./node_modules/core-js/internals/classof.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var ITERATOR = wellKnownSymbol("iterator"); + module3.exports = function(it) { + if (it != void 0) + return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)]; + }; + }, + "./node_modules/core-js/internals/global.js": function(module3, exports2, __webpack_require__) { + (function(global2) { + var O = "object"; + var check = function(it) { + return it && it.Math == Math && it; + }; + module3.exports = check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global2 == O && global2) || Function("return this")(); + }).call(this, __webpack_require__("./node_modules/webpack/buildin/global.js")); + }, + "./node_modules/core-js/internals/has.js": function(module3, exports2) { + var hasOwnProperty = {}.hasOwnProperty; + module3.exports = function(it, key2) { + return hasOwnProperty.call(it, key2); + }; + }, + "./node_modules/core-js/internals/hidden-keys.js": function(module3, exports2) { + module3.exports = {}; + }, + "./node_modules/core-js/internals/hide.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + module3.exports = DESCRIPTORS ? function(object, key2, value) { + return definePropertyModule.f(object, key2, createPropertyDescriptor(1, value)); + } : function(object, key2, value) { + object[key2] = value; + return object; + }; + }, + "./node_modules/core-js/internals/html.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var document2 = global2.document; + module3.exports = document2 && document2.documentElement; + }, + "./node_modules/core-js/internals/ie8-dom-define.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + var createElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js"); + module3.exports = !DESCRIPTORS && !fails(function() { + return Object.defineProperty(createElement("div"), "a", { + get: function() { + return 7; + } + }).a != 7; + }); + }, + "./node_modules/core-js/internals/indexed-object.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + var classof = __webpack_require__("./node_modules/core-js/internals/classof-raw.js"); + var split = "".split; + module3.exports = fails(function() { + return !Object("z").propertyIsEnumerable(0); + }) ? function(it) { + return classof(it) == "String" ? split.call(it, "") : Object(it); + } : Object; + }, + "./node_modules/core-js/internals/internal-state.js": function(module3, exports2, __webpack_require__) { + var NATIVE_WEAK_MAP = __webpack_require__("./node_modules/core-js/internals/native-weak-map.js"); + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var objectHas = __webpack_require__("./node_modules/core-js/internals/has.js"); + var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); + var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); + var WeakMap2 = global2.WeakMap; + var set, get, has; + var enforce = function(it) { + return has(it) ? get(it) : set(it, {}); + }; + var getterFor = function(TYPE) { + return function(it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError("Incompatible receiver, " + TYPE + " required"); + } + return state; + }; + }; + if (NATIVE_WEAK_MAP) { + var store = new WeakMap2(); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function(it, metadata) { + wmset.call(store, it, metadata); + return metadata; + }; + get = function(it) { + return wmget.call(store, it) || {}; + }; + has = function(it) { + return wmhas.call(store, it); + }; + } else { + var STATE = sharedKey("state"); + hiddenKeys[STATE] = true; + set = function(it, metadata) { + hide(it, STATE, metadata); + return metadata; + }; + get = function(it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function(it) { + return objectHas(it, STATE); + }; + } + module3.exports = { + set, + get, + has, + enforce, + getterFor + }; + }, + "./node_modules/core-js/internals/is-array-iterator-method.js": function(module3, exports2, __webpack_require__) { + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var ITERATOR = wellKnownSymbol("iterator"); + var ArrayPrototype = Array.prototype; + module3.exports = function(it) { + return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + }; + }, + "./node_modules/core-js/internals/is-forced.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + var replacement = /#|\.prototype\./; + var isForced = function(feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection; + }; + var normalize = isForced.normalize = function(string) { + return String(string).replace(replacement, ".").toLowerCase(); + }; + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = "N"; + var POLYFILL = isForced.POLYFILL = "P"; + module3.exports = isForced; + }, + "./node_modules/core-js/internals/is-object.js": function(module3, exports2) { + module3.exports = function(it) { + return typeof it === "object" ? it !== null : typeof it === "function"; + }; + }, + "./node_modules/core-js/internals/is-pure.js": function(module3, exports2) { + module3.exports = false; + }, + "./node_modules/core-js/internals/iterators-core.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); + var ITERATOR = wellKnownSymbol("iterator"); + var BUGGY_SAFARI_ITERATORS = false; + var returnThis = function() { + return this; + }; + var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + if ([].keys) { + arrayIterator = [].keys(); + if (!("next" in arrayIterator)) + BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) + IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } + } + if (IteratorPrototype == void 0) + IteratorPrototype = {}; + if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) + hide(IteratorPrototype, ITERATOR, returnThis); + module3.exports = { + IteratorPrototype, + BUGGY_SAFARI_ITERATORS + }; + }, + "./node_modules/core-js/internals/iterators.js": function(module3, exports2) { + module3.exports = {}; + }, + "./node_modules/core-js/internals/native-symbol.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + module3.exports = !!Object.getOwnPropertySymbols && !fails(function() { + return !String(Symbol()); + }); + }, + "./node_modules/core-js/internals/native-weak-map.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js"); + var WeakMap2 = global2.WeakMap; + module3.exports = typeof WeakMap2 === "function" && /native code/.test(nativeFunctionToString.call(WeakMap2)); + }, + "./node_modules/core-js/internals/object-create.js": function(module3, exports2, __webpack_require__) { + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var defineProperties = __webpack_require__("./node_modules/core-js/internals/object-define-properties.js"); + var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); + var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); + var html2 = __webpack_require__("./node_modules/core-js/internals/html.js"); + var documentCreateElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js"); + var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); + var IE_PROTO = sharedKey("IE_PROTO"); + var PROTOTYPE = "prototype"; + var Empty = function() { + }; + var createDict = function() { + var iframe = documentCreateElement("iframe"); + var length = enumBugKeys.length; + var lt = "<"; + var script = "script"; + var gt = ">"; + var js = "java" + script + ":"; + var iframeDocument; + iframe.style.display = "none"; + html2.appendChild(iframe); + iframe.src = String(js); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + script + gt + "document.F=Object" + lt + "/" + script + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (length--) + delete createDict[PROTOTYPE][enumBugKeys[length]]; + return createDict(); + }; + module3.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else + result = createDict(); + return Properties === void 0 ? result : defineProperties(result, Properties); + }; + hiddenKeys[IE_PROTO] = true; + }, + "./node_modules/core-js/internals/object-define-properties.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var objectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys.js"); + module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var i = 0; + var key2; + while (length > i) + definePropertyModule.f(O, key2 = keys[i++], Properties[key2]); + return O; + }; + }, + "./node_modules/core-js/internals/object-define-property.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); + var nativeDefineProperty = Object.defineProperty; + exports2.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) + try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { + } + if ("get" in Attributes || "set" in Attributes) + throw TypeError("Accessors not supported"); + if ("value" in Attributes) + O[P] = Attributes.value; + return O; + }; + }, + "./node_modules/core-js/internals/object-get-own-property-descriptor.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var propertyIsEnumerableModule = __webpack_require__("./node_modules/core-js/internals/object-property-is-enumerable.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); + var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js"); + var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + exports2.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) + try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (has(O, P)) + return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); + }; + }, + "./node_modules/core-js/internals/object-get-own-property-names.js": function(module3, exports2, __webpack_require__) { + var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js"); + var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); + var hiddenKeys = enumBugKeys.concat("length", "prototype"); + exports2.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); + }; + }, + "./node_modules/core-js/internals/object-get-own-property-symbols.js": function(module3, exports2) { + exports2.f = Object.getOwnPropertySymbols; + }, + "./node_modules/core-js/internals/object-get-prototype-of.js": function(module3, exports2, __webpack_require__) { + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js"); + var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); + var CORRECT_PROTOTYPE_GETTER = __webpack_require__("./node_modules/core-js/internals/correct-prototype-getter.js"); + var IE_PROTO = sharedKey("IE_PROTO"); + var ObjectPrototype = Object.prototype; + module3.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function(O) { + O = toObject(O); + if (has(O, IE_PROTO)) + return O[IE_PROTO]; + if (typeof O.constructor == "function" && O instanceof O.constructor) { + return O.constructor.prototype; + } + return O instanceof Object ? ObjectPrototype : null; + }; + }, + "./node_modules/core-js/internals/object-keys-internal.js": function(module3, exports2, __webpack_require__) { + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); + var arrayIncludes = __webpack_require__("./node_modules/core-js/internals/array-includes.js"); + var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); + var arrayIndexOf = arrayIncludes(false); + module3.exports = function(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key2; + for (key2 in O) + !has(hiddenKeys, key2) && has(O, key2) && result.push(key2); + while (names.length > i) + if (has(O, key2 = names[i++])) { + ~arrayIndexOf(result, key2) || result.push(key2); + } + return result; + }; + }, + "./node_modules/core-js/internals/object-keys.js": function(module3, exports2, __webpack_require__) { + var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js"); + var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); + module3.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); + }; + }, + "./node_modules/core-js/internals/object-property-is-enumerable.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var nativePropertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); + exports2.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : nativePropertyIsEnumerable; + }, + "./node_modules/core-js/internals/object-set-prototype-of.js": function(module3, exports2, __webpack_require__) { + var validateSetPrototypeOfArguments = __webpack_require__("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js"); + module3.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() { + var correctSetter = false; + var test = {}; + var setter; + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set; + setter.call(test, []); + correctSetter = test instanceof Array; + } catch (error) { + } + return function setPrototypeOf(O, proto) { + validateSetPrototypeOfArguments(O, proto); + if (correctSetter) + setter.call(O, proto); + else + O.__proto__ = proto; + return O; + }; + }() : void 0); + }, + "./node_modules/core-js/internals/own-keys.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var getOwnPropertyNamesModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-names.js"); + var getOwnPropertySymbolsModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-symbols.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var Reflect = global2.Reflect; + module3.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + }; + }, + "./node_modules/core-js/internals/path.js": function(module3, exports2, __webpack_require__) { + module3.exports = __webpack_require__("./node_modules/core-js/internals/global.js"); + }, + "./node_modules/core-js/internals/redefine.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); + var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js"); + var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js"); + var getInternalState = InternalStateModule.get; + var enforceInternalState = InternalStateModule.enforce; + var TEMPLATE = String(nativeFunctionToString).split("toString"); + shared("inspectSource", function(it) { + return nativeFunctionToString.call(it); + }); + (module3.exports = function(O, key2, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + if (typeof value == "function") { + if (typeof key2 == "string" && !has(value, "name")) + hide(value, "name", key2); + enforceInternalState(value).source = TEMPLATE.join(typeof key2 == "string" ? key2 : ""); + } + if (O === global2) { + if (simple) + O[key2] = value; + else + setGlobal(key2, value); + return; + } else if (!unsafe) { + delete O[key2]; + } else if (!noTargetGet && O[key2]) { + simple = true; + } + if (simple) + O[key2] = value; + else + hide(O, key2, value); + })(Function.prototype, "toString", function toString() { + return typeof this == "function" && getInternalState(this).source || nativeFunctionToString.call(this); + }); + }, + "./node_modules/core-js/internals/require-object-coercible.js": function(module3, exports2) { + module3.exports = function(it) { + if (it == void 0) + throw TypeError("Can't call method on " + it); + return it; + }; + }, + "./node_modules/core-js/internals/set-global.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + module3.exports = function(key2, value) { + try { + hide(global2, key2, value); + } catch (error) { + global2[key2] = value; + } + return value; + }; + }, + "./node_modules/core-js/internals/set-to-string-tag.js": function(module3, exports2, __webpack_require__) { + var defineProperty = __webpack_require__("./node_modules/core-js/internals/object-define-property.js").f; + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + module3.exports = function(it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); + } + }; + }, + "./node_modules/core-js/internals/shared-key.js": function(module3, exports2, __webpack_require__) { + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + var uid = __webpack_require__("./node_modules/core-js/internals/uid.js"); + var keys = shared("keys"); + module3.exports = function(key2) { + return keys[key2] || (keys[key2] = uid(key2)); + }; + }, + "./node_modules/core-js/internals/shared.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); + var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); + var SHARED = "__core-js_shared__"; + var store = global2[SHARED] || setGlobal(SHARED, {}); + (module3.exports = function(key2, value) { + return store[key2] || (store[key2] = value !== void 0 ? value : {}); + })("versions", []).push({ + version: "3.1.3", + mode: IS_PURE ? "pure" : "global", + copyright: "\xA9 2019 Denis Pushkarev (zloirock.ru)" + }); + }, + "./node_modules/core-js/internals/string-at.js": function(module3, exports2, __webpack_require__) { + var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); + var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); + module3.exports = function(that, pos, CONVERT_TO_STRING) { + var S = String(requireObjectCoercible(that)); + var position = toInteger(pos); + var size = S.length; + var first2, second; + if (position < 0 || position >= size) + return CONVERT_TO_STRING ? "" : void 0; + first2 = S.charCodeAt(position); + return first2 < 55296 || first2 > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first2 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first2 - 55296 << 10) + (second - 56320) + 65536; + }; + }, + "./node_modules/core-js/internals/to-absolute-index.js": function(module3, exports2, __webpack_require__) { + var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); + var max = Math.max; + var min = Math.min; + module3.exports = function(index2, length) { + var integer = toInteger(index2); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; + }, + "./node_modules/core-js/internals/to-indexed-object.js": function(module3, exports2, __webpack_require__) { + var IndexedObject = __webpack_require__("./node_modules/core-js/internals/indexed-object.js"); + var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); + module3.exports = function(it) { + return IndexedObject(requireObjectCoercible(it)); + }; + }, + "./node_modules/core-js/internals/to-integer.js": function(module3, exports2) { + var ceil = Math.ceil; + var floor = Math.floor; + module3.exports = function(argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); + }; + }, + "./node_modules/core-js/internals/to-length.js": function(module3, exports2, __webpack_require__) { + var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); + var min = Math.min; + module3.exports = function(argument) { + return argument > 0 ? min(toInteger(argument), 9007199254740991) : 0; + }; + }, + "./node_modules/core-js/internals/to-object.js": function(module3, exports2, __webpack_require__) { + var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); + module3.exports = function(argument) { + return Object(requireObjectCoercible(argument)); + }; + }, + "./node_modules/core-js/internals/to-primitive.js": function(module3, exports2, __webpack_require__) { + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + module3.exports = function(it, S) { + if (!isObject(it)) + return it; + var fn, val; + if (S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + return val; + if (typeof (fn = it.valueOf) == "function" && !isObject(val = fn.call(it))) + return val; + if (!S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + return val; + throw TypeError("Can't convert object to primitive value"); + }; + }, + "./node_modules/core-js/internals/uid.js": function(module3, exports2) { + var id = 0; + var postfix = Math.random(); + module3.exports = function(key2) { + return "Symbol(".concat(key2 === void 0 ? "" : key2, ")_", (++id + postfix).toString(36)); + }; + }, + "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js": function(module3, exports2, __webpack_require__) { + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + module3.exports = function(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) { + throw TypeError("Can't set " + String(proto) + " as a prototype"); + } + }; + }, + "./node_modules/core-js/internals/well-known-symbol.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + var uid = __webpack_require__("./node_modules/core-js/internals/uid.js"); + var NATIVE_SYMBOL = __webpack_require__("./node_modules/core-js/internals/native-symbol.js"); + var Symbol2 = global2.Symbol; + var store = shared("wks"); + module3.exports = function(name) { + return store[name] || (store[name] = NATIVE_SYMBOL && Symbol2[name] || (NATIVE_SYMBOL ? Symbol2 : uid)("Symbol." + name)); + }; + }, + "./node_modules/core-js/modules/es.array.from.js": function(module3, exports2, __webpack_require__) { + var $ = __webpack_require__("./node_modules/core-js/internals/export.js"); + var from = __webpack_require__("./node_modules/core-js/internals/array-from.js"); + var checkCorrectnessOfIteration = __webpack_require__("./node_modules/core-js/internals/check-correctness-of-iteration.js"); + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function(iterable) { + Array.from(iterable); + }); + $({ target: "Array", stat: true, forced: INCORRECT_ITERATION }, { + from + }); + }, + "./node_modules/core-js/modules/es.string.iterator.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var codePointAt = __webpack_require__("./node_modules/core-js/internals/string-at.js"); + var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js"); + var defineIterator = __webpack_require__("./node_modules/core-js/internals/define-iterator.js"); + var STRING_ITERATOR = "String Iterator"; + var setInternalState = InternalStateModule.set; + var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + defineIterator(String, "String", function(iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: String(iterated), + index: 0 + }); + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index2 = state.index; + var point; + if (index2 >= string.length) + return { value: void 0, done: true }; + point = codePointAt(string, index2, true); + state.index += point.length; + return { value: point, done: false }; + }); + }, + "./node_modules/webpack/buildin/global.js": function(module3, exports2) { + var g; + g = function() { + return this; + }(); + try { + g = g || Function("return this")() || (1, eval)("this"); + } catch (e) { + if (typeof window === "object") + g = window; + } + module3.exports = g; + }, + "./src/default-attrs.json": function(module3) { + module3.exports = { "xmlns": "http://www.w3.org/2000/svg", "width": 24, "height": 24, "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" }; + }, + "./src/icon.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js"); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _defaultAttrs = __webpack_require__("./src/default-attrs.json"); + var _defaultAttrs2 = _interopRequireDefault(_defaultAttrs); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function _classCallCheck(instance6, Constructor) { + if (!(instance6 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Icon = function() { + function Icon2(name, contents) { + var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + _classCallCheck(this, Icon2); + this.name = name; + this.contents = contents; + this.tags = tags; + this.attrs = _extends({}, _defaultAttrs2.default, { class: "feather feather-" + name }); + } + _createClass(Icon2, [{ + key: "toSvg", + value: function toSvg() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var combinedAttrs = _extends({}, this.attrs, attrs, { class: (0, _dedupe2.default)(this.attrs.class, attrs.class) }); + return "" + this.contents + ""; + } + }, { + key: "toString", + value: function toString() { + return this.contents; + } + }]); + return Icon2; + }(); + function attrsToString(attrs) { + return Object.keys(attrs).map(function(key2) { + return key2 + '="' + attrs[key2] + '"'; + }).join(" "); + } + exports2.default = Icon; + }, + "./src/icons.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _icon = __webpack_require__("./src/icon.js"); + var _icon2 = _interopRequireDefault(_icon); + var _icons = __webpack_require__("./dist/icons.json"); + var _icons2 = _interopRequireDefault(_icons); + var _tags = __webpack_require__("./src/tags.json"); + var _tags2 = _interopRequireDefault(_tags); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + exports2.default = Object.keys(_icons2.default).map(function(key2) { + return new _icon2.default(key2, _icons2.default[key2], _tags2.default[key2]); + }).reduce(function(object, icon) { + object[icon.name] = icon; + return object; + }, {}); + }, + "./src/index.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var _icons = __webpack_require__("./src/icons.js"); + var _icons2 = _interopRequireDefault(_icons); + var _toSvg = __webpack_require__("./src/to-svg.js"); + var _toSvg2 = _interopRequireDefault(_toSvg); + var _replace = __webpack_require__("./src/replace.js"); + var _replace2 = _interopRequireDefault(_replace); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + module3.exports = { icons: _icons2.default, toSvg: _toSvg2.default, replace: _replace2.default }; + }, + "./src/replace.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js"); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _icons = __webpack_require__("./src/icons.js"); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function replace() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (typeof document === "undefined") { + throw new Error("`feather.replace()` only works in a browser environment."); + } + var elementsToReplace = document.querySelectorAll("[data-feather]"); + Array.from(elementsToReplace).forEach(function(element2) { + return replaceElement(element2, attrs); + }); + } + function replaceElement(element2) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var elementAttrs = getAttrs(element2); + var name = elementAttrs["data-feather"]; + delete elementAttrs["data-feather"]; + var svgString = _icons2.default[name].toSvg(_extends({}, attrs, elementAttrs, { class: (0, _dedupe2.default)(attrs.class, elementAttrs.class) })); + var svgDocument = new DOMParser().parseFromString(svgString, "image/svg+xml"); + var svgElement = svgDocument.querySelector("svg"); + element2.parentNode.replaceChild(svgElement, element2); + } + function getAttrs(element2) { + return Array.from(element2.attributes).reduce(function(attrs, attr2) { + attrs[attr2.name] = attr2.value; + return attrs; + }, {}); + } + exports2.default = replace; + }, + "./src/tags.json": function(module3) { + module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "chevron-down": ["expand"], "chevron-up": ["collapse"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-bouy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; + }, + "./src/to-svg.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _icons = __webpack_require__("./src/icons.js"); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function toSvg(name) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."); + if (!name) { + throw new Error("The required `key` (icon name) parameter is missing."); + } + if (!_icons2.default[name]) { + throw new Error("No icon matching '" + name + "'. See the complete list of icons at https://feathericons.com"); + } + return _icons2.default[name].toSvg(attrs); + } + exports2.default = toSvg; + }, + 0: function(module3, exports2, __webpack_require__) { + __webpack_require__("./node_modules/core-js/es/array/from.js"); + module3.exports = __webpack_require__("./src/index.js"); + } + }); + }); + } +}); + +// src/main.ts +__export(exports, { + default: () => ObsidianGit +}); +init_polyfill_buffer(); + +// node_modules/isomorphic-git/index.js +init_polyfill_buffer(); +var import_async_lock = __toModule(require_async_lock()); +var import_sha1 = __toModule(require_sha1()); +var import_crc_32 = __toModule(require_crc32()); +var import_pako = __toModule(require_pako()); +var import_ignore = __toModule(require_ignore()); +var import_pify = __toModule(require_pify()); +var import_clean_git_ref = __toModule(require_lib2()); +var import_diff3 = __toModule(require_diff3()); +var BaseError = class extends Error { + constructor(message) { + super(message); + this.caller = ""; + } + toJSON() { + return { + code: this.code, + data: this.data, + caller: this.caller, + message: this.message, + stack: this.stack + }; + } + fromJSON(json) { + const e = new BaseError(json.message); + e.code = json.code; + e.data = json.data; + e.caller = json.caller; + e.stack = json.stack; + return e; + } + get isIsomorphicGitError() { + return true; + } +}; +var InternalError = class extends BaseError { + constructor(message) { + super(`An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${message}`); + this.code = this.name = InternalError.code; + this.data = { message }; + } +}; +InternalError.code = "InternalError"; +var UnsafeFilepathError = class extends BaseError { + constructor(filepath) { + super(`The filepath "${filepath}" contains unsafe character sequences`); + this.code = this.name = UnsafeFilepathError.code; + this.data = { filepath }; + } +}; +UnsafeFilepathError.code = "UnsafeFilepathError"; +var BufferCursor = class { + constructor(buffer2) { + this.buffer = buffer2; + this._start = 0; + } + eof() { + return this._start >= this.buffer.length; + } + tell() { + return this._start; + } + seek(n) { + this._start = n; + } + slice(n) { + const r = this.buffer.slice(this._start, this._start + n); + this._start += n; + return r; + } + toString(enc, length) { + const r = this.buffer.toString(enc, this._start, this._start + length); + this._start += length; + return r; + } + write(value, length, enc) { + const r = this.buffer.write(value, this._start, length, enc); + this._start += length; + return r; + } + copy(source, start, end) { + const r = source.copy(this.buffer, this._start, start, end); + this._start += r; + return r; + } + readUInt8() { + const r = this.buffer.readUInt8(this._start); + this._start += 1; + return r; + } + writeUInt8(value) { + const r = this.buffer.writeUInt8(value, this._start); + this._start += 1; + return r; + } + readUInt16BE() { + const r = this.buffer.readUInt16BE(this._start); + this._start += 2; + return r; + } + writeUInt16BE(value) { + const r = this.buffer.writeUInt16BE(value, this._start); + this._start += 2; + return r; + } + readUInt32BE() { + const r = this.buffer.readUInt32BE(this._start); + this._start += 4; + return r; + } + writeUInt32BE(value) { + const r = this.buffer.writeUInt32BE(value, this._start); + this._start += 4; + return r; + } +}; +function compareStrings(a, b) { + return -(a < b) || +(a > b); +} +function comparePath(a, b) { + return compareStrings(a.path, b.path); +} +function normalizeMode(mode) { + let type = mode > 0 ? mode >> 12 : 0; + if (type !== 4 && type !== 8 && type !== 10 && type !== 14) { + type = 8; + } + let permissions = mode & 511; + if (permissions & 73) { + permissions = 493; + } else { + permissions = 420; + } + if (type !== 8) + permissions = 0; + return (type << 12) + permissions; +} +var MAX_UINT32 = 2 ** 32; +function SecondsNanoseconds(givenSeconds, givenNanoseconds, milliseconds, date) { + if (givenSeconds !== void 0 && givenNanoseconds !== void 0) { + return [givenSeconds, givenNanoseconds]; + } + if (milliseconds === void 0) { + milliseconds = date.valueOf(); + } + const seconds = Math.floor(milliseconds / 1e3); + const nanoseconds = (milliseconds - seconds * 1e3) * 1e6; + return [seconds, nanoseconds]; +} +function normalizeStats(e) { + const [ctimeSeconds, ctimeNanoseconds] = SecondsNanoseconds(e.ctimeSeconds, e.ctimeNanoseconds, e.ctimeMs, e.ctime); + const [mtimeSeconds, mtimeNanoseconds] = SecondsNanoseconds(e.mtimeSeconds, e.mtimeNanoseconds, e.mtimeMs, e.mtime); + return { + ctimeSeconds: ctimeSeconds % MAX_UINT32, + ctimeNanoseconds: ctimeNanoseconds % MAX_UINT32, + mtimeSeconds: mtimeSeconds % MAX_UINT32, + mtimeNanoseconds: mtimeNanoseconds % MAX_UINT32, + dev: e.dev % MAX_UINT32, + ino: e.ino % MAX_UINT32, + mode: normalizeMode(e.mode % MAX_UINT32), + uid: e.uid % MAX_UINT32, + gid: e.gid % MAX_UINT32, + size: e.size > -1 ? e.size % MAX_UINT32 : 0 + }; +} +function toHex(buffer2) { + let hex = ""; + for (const byte of new Uint8Array(buffer2)) { + if (byte < 16) + hex += "0"; + hex += byte.toString(16); + } + return hex; +} +var supportsSubtleSHA1 = null; +async function shasum(buffer2) { + if (supportsSubtleSHA1 === null) { + supportsSubtleSHA1 = await testSubtleSHA1(); + } + return supportsSubtleSHA1 ? subtleSHA1(buffer2) : shasumSync(buffer2); +} +function shasumSync(buffer2) { + return new import_sha1.default().update(buffer2).digest("hex"); +} +async function subtleSHA1(buffer2) { + const hash2 = await crypto.subtle.digest("SHA-1", buffer2); + return toHex(hash2); +} +async function testSubtleSHA1() { + try { + const hash2 = await subtleSHA1(new Uint8Array([])); + if (hash2 === "da39a3ee5e6b4b0d3255bfef95601890afd80709") + return true; + } catch (_) { + } + return false; +} +function parseCacheEntryFlags(bits) { + return { + assumeValid: Boolean(bits & 32768), + extended: Boolean(bits & 16384), + stage: (bits & 12288) >> 12, + nameLength: bits & 4095 + }; +} +function renderCacheEntryFlags(entry) { + const flags = entry.flags; + flags.extended = false; + flags.nameLength = Math.min(Buffer2.from(entry.path).length, 4095); + return (flags.assumeValid ? 32768 : 0) + (flags.extended ? 16384 : 0) + ((flags.stage & 3) << 12) + (flags.nameLength & 4095); +} +var GitIndex = class { + constructor(entries) { + this._dirty = false; + this._entries = entries || new Map(); + } + static async from(buffer2) { + if (Buffer2.isBuffer(buffer2)) { + return GitIndex.fromBuffer(buffer2); + } else if (buffer2 === null) { + return new GitIndex(null); + } else { + throw new InternalError("invalid type passed to GitIndex.from"); + } + } + static async fromBuffer(buffer2) { + const shaComputed = await shasum(buffer2.slice(0, -20)); + const shaClaimed = buffer2.slice(-20).toString("hex"); + if (shaClaimed !== shaComputed) { + throw new InternalError(`Invalid checksum in GitIndex buffer: expected ${shaClaimed} but saw ${shaComputed}`); + } + const reader = new BufferCursor(buffer2); + const _entries = new Map(); + const magic = reader.toString("utf8", 4); + if (magic !== "DIRC") { + throw new InternalError(`Inavlid dircache magic file number: ${magic}`); + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError(`Unsupported dircache version: ${version2}`); + } + const numEntries = reader.readUInt32BE(); + let i = 0; + while (!reader.eof() && i < numEntries) { + const entry = {}; + entry.ctimeSeconds = reader.readUInt32BE(); + entry.ctimeNanoseconds = reader.readUInt32BE(); + entry.mtimeSeconds = reader.readUInt32BE(); + entry.mtimeNanoseconds = reader.readUInt32BE(); + entry.dev = reader.readUInt32BE(); + entry.ino = reader.readUInt32BE(); + entry.mode = reader.readUInt32BE(); + entry.uid = reader.readUInt32BE(); + entry.gid = reader.readUInt32BE(); + entry.size = reader.readUInt32BE(); + entry.oid = reader.slice(20).toString("hex"); + const flags = reader.readUInt16BE(); + entry.flags = parseCacheEntryFlags(flags); + const pathlength = buffer2.indexOf(0, reader.tell() + 1) - reader.tell(); + if (pathlength < 1) { + throw new InternalError(`Got a path length of: ${pathlength}`); + } + entry.path = reader.toString("utf8", pathlength); + if (entry.path.includes("..\\") || entry.path.includes("../")) { + throw new UnsafeFilepathError(entry.path); + } + let padding = 8 - (reader.tell() - 12) % 8; + if (padding === 0) + padding = 8; + while (padding--) { + const tmp = reader.readUInt8(); + if (tmp !== 0) { + throw new InternalError(`Expected 1-8 null characters but got '${tmp}' after ${entry.path}`); + } else if (reader.eof()) { + throw new InternalError("Unexpected end of file"); + } + } + _entries.set(entry.path, entry); + i++; + } + return new GitIndex(_entries); + } + get entries() { + return [...this._entries.values()].sort(comparePath); + } + get entriesMap() { + return this._entries; + } + *[Symbol.iterator]() { + for (const entry of this.entries) { + yield entry; + } + } + insert({ filepath, stats, oid }) { + stats = normalizeStats(stats); + const bfilepath = Buffer2.from(filepath); + const entry = { + ctimeSeconds: stats.ctimeSeconds, + ctimeNanoseconds: stats.ctimeNanoseconds, + mtimeSeconds: stats.mtimeSeconds, + mtimeNanoseconds: stats.mtimeNanoseconds, + dev: stats.dev, + ino: stats.ino, + mode: stats.mode || 33188, + uid: stats.uid, + gid: stats.gid, + size: stats.size, + path: filepath, + oid, + flags: { + assumeValid: false, + extended: false, + stage: 0, + nameLength: bfilepath.length < 4095 ? bfilepath.length : 4095 + } + }; + this._entries.set(entry.path, entry); + this._dirty = true; + } + delete({ filepath }) { + if (this._entries.has(filepath)) { + this._entries.delete(filepath); + } else { + for (const key2 of this._entries.keys()) { + if (key2.startsWith(filepath + "/")) { + this._entries.delete(key2); + } + } + } + this._dirty = true; + } + clear() { + this._entries.clear(); + this._dirty = true; + } + has({ filepath }) { + return this._entries.has(filepath); + } + render() { + return this.entries.map((entry) => `${entry.mode.toString(8)} ${entry.oid} ${entry.path}`).join("\n"); + } + async toObject() { + const header = Buffer2.alloc(12); + const writer = new BufferCursor(header); + writer.write("DIRC", 4, "utf8"); + writer.writeUInt32BE(2); + writer.writeUInt32BE(this.entries.length); + const body = Buffer2.concat(this.entries.map((entry) => { + const bpath = Buffer2.from(entry.path); + const length = Math.ceil((62 + bpath.length + 1) / 8) * 8; + const written = Buffer2.alloc(length); + const writer2 = new BufferCursor(written); + const stat = normalizeStats(entry); + writer2.writeUInt32BE(stat.ctimeSeconds); + writer2.writeUInt32BE(stat.ctimeNanoseconds); + writer2.writeUInt32BE(stat.mtimeSeconds); + writer2.writeUInt32BE(stat.mtimeNanoseconds); + writer2.writeUInt32BE(stat.dev); + writer2.writeUInt32BE(stat.ino); + writer2.writeUInt32BE(stat.mode); + writer2.writeUInt32BE(stat.uid); + writer2.writeUInt32BE(stat.gid); + writer2.writeUInt32BE(stat.size); + writer2.write(entry.oid, 20, "hex"); + writer2.writeUInt16BE(renderCacheEntryFlags(entry)); + writer2.write(entry.path, bpath.length, "utf8"); + return written; + })); + const main = Buffer2.concat([header, body]); + const sum = await shasum(main); + return Buffer2.concat([main, Buffer2.from(sum, "hex")]); + } +}; +function compareStats(entry, stats) { + const e = normalizeStats(entry); + const s = normalizeStats(stats); + const staleness = e.mode !== s.mode || e.mtimeSeconds !== s.mtimeSeconds || e.ctimeSeconds !== s.ctimeSeconds || e.uid !== s.uid || e.gid !== s.gid || e.ino !== s.ino || e.size !== s.size; + return staleness; +} +var lock = null; +var IndexCache = Symbol("IndexCache"); +function createCache() { + return { + map: new Map(), + stats: new Map() + }; +} +async function updateCachedIndexFile(fs, filepath, cache) { + const stat = await fs.lstat(filepath); + const rawIndexFile = await fs.read(filepath); + const index2 = await GitIndex.from(rawIndexFile); + cache.map.set(filepath, index2); + cache.stats.set(filepath, stat); +} +async function isIndexStale(fs, filepath, cache) { + const savedStats = cache.stats.get(filepath); + if (savedStats === void 0) + return true; + const currStats = await fs.lstat(filepath); + if (savedStats === null) + return false; + if (currStats === null) + return false; + return compareStats(savedStats, currStats); +} +var GitIndexManager = class { + static async acquire({ fs, gitdir, cache }, closure) { + if (!cache[IndexCache]) + cache[IndexCache] = createCache(); + const filepath = `${gitdir}/index`; + if (lock === null) + lock = new import_async_lock.default({ maxPending: Infinity }); + let result; + await lock.acquire(filepath, async () => { + if (await isIndexStale(fs, filepath, cache[IndexCache])) { + await updateCachedIndexFile(fs, filepath, cache[IndexCache]); + } + const index2 = cache[IndexCache].map.get(filepath); + result = await closure(index2); + if (index2._dirty) { + const buffer2 = await index2.toObject(); + await fs.write(filepath, buffer2); + cache[IndexCache].stats.set(filepath, await fs.lstat(filepath)); + index2._dirty = false; + } + }); + return result; + } +}; +function basename(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 > -1) { + path2 = path2.slice(last2 + 1); + } + return path2; +} +function dirname(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 === -1) + return "."; + if (last2 === 0) + return "/"; + return path2.slice(0, last2); +} +function flatFileListToDirectoryStructure(files) { + const inodes = new Map(); + const mkdir = function(name) { + if (!inodes.has(name)) { + const dir = { + type: "tree", + fullpath: name, + basename: basename(name), + metadata: {}, + children: [] + }; + inodes.set(name, dir); + dir.parent = mkdir(dirname(name)); + if (dir.parent && dir.parent !== dir) + dir.parent.children.push(dir); + } + return inodes.get(name); + }; + const mkfile = function(name, metadata) { + if (!inodes.has(name)) { + const file = { + type: "blob", + fullpath: name, + basename: basename(name), + metadata, + parent: mkdir(dirname(name)), + children: [] + }; + if (file.parent) + file.parent.children.push(file); + inodes.set(name, file); + } + return inodes.get(name); + }; + mkdir("."); + for (const file of files) { + mkfile(file.path, file); + } + return inodes; +} +function mode2type(mode) { + switch (mode) { + case 16384: + return "tree"; + case 33188: + return "blob"; + case 33261: + return "blob"; + case 40960: + return "blob"; + case 57344: + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode.toString(8)}`); +} +var GitWalkerIndex = class { + constructor({ fs, gitdir, cache }) { + this.treePromise = GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + return flatFileListToDirectoryStructure(index2.entries); + }); + const walker = this; + this.ConstructEntry = class StageEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const tree = await this.treePromise; + const inode = tree.get(filepath); + if (!inode) + return null; + if (inode.type === "blob") + return null; + if (inode.type !== "tree") { + throw new Error(`ENOTDIR: not a directory, scandir '${filepath}'`); + } + const names = inode.children.map((inode2) => inode2.fullpath); + names.sort(compareStrings); + return names; + } + async type(entry) { + if (entry._type === false) { + await entry.stat(); + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + await entry.stat(); + } + return entry._mode; + } + async stat(entry) { + if (entry._stat === false) { + const tree = await this.treePromise; + const inode = tree.get(entry._fullpath); + if (!inode) { + throw new Error(`ENOENT: no such file or directory, lstat '${entry._fullpath}'`); + } + const stats = inode.type === "tree" ? {} : normalizeStats(inode.metadata); + entry._type = inode.type === "tree" ? "tree" : mode2type(stats.mode); + entry._mode = stats.mode; + if (inode.type === "tree") { + entry._stat = void 0; + } else { + entry._stat = stats; + } + } + return entry._stat; + } + async content(_entry) { + } + async oid(entry) { + if (entry._oid === false) { + const tree = await this.treePromise; + const inode = tree.get(entry._fullpath); + entry._oid = inode.metadata.oid; + } + return entry._oid; + } +}; +var GitWalkSymbol = Symbol("GitWalkSymbol"); +function STAGE() { + const o = Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerIndex({ fs, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +var NotFoundError = class extends BaseError { + constructor(what) { + super(`Could not find ${what}.`); + this.code = this.name = NotFoundError.code; + this.data = { what }; + } +}; +NotFoundError.code = "NotFoundError"; +var ObjectTypeError = class extends BaseError { + constructor(oid, actual, expected, filepath) { + super(`Object ${oid} ${filepath ? `at ${filepath}` : ""}was anticipated to be a ${expected} but it is a ${actual}.`); + this.code = this.name = ObjectTypeError.code; + this.data = { oid, actual, expected, filepath }; + } +}; +ObjectTypeError.code = "ObjectTypeError"; +var InvalidOidError = class extends BaseError { + constructor(value) { + super(`Expected a 40-char hex object id but saw "${value}".`); + this.code = this.name = InvalidOidError.code; + this.data = { value }; + } +}; +InvalidOidError.code = "InvalidOidError"; +var NoRefspecError = class extends BaseError { + constructor(remote) { + super(`Could not find a fetch refspec for remote "${remote}". Make sure the config file has an entry like the following: +[remote "${remote}"] + fetch = +refs/heads/*:refs/remotes/origin/* +`); + this.code = this.name = NoRefspecError.code; + this.data = { remote }; + } +}; +NoRefspecError.code = "NoRefspecError"; +var GitPackedRefs = class { + constructor(text2) { + this.refs = new Map(); + this.parsedConfig = []; + if (text2) { + let key2 = null; + this.parsedConfig = text2.trim().split("\n").map((line) => { + if (/^\s*#/.test(line)) { + return { line, comment: true }; + } + const i = line.indexOf(" "); + if (line.startsWith("^")) { + const value = line.slice(1); + this.refs.set(key2 + "^{}", value); + return { line, ref: key2, peeled: value }; + } else { + const value = line.slice(0, i); + key2 = line.slice(i + 1); + this.refs.set(key2, value); + return { line, ref: key2, oid: value }; + } + }); + } + return this; + } + static from(text2) { + return new GitPackedRefs(text2); + } + delete(ref) { + this.parsedConfig = this.parsedConfig.filter((entry) => entry.ref !== ref); + this.refs.delete(ref); + } + toString() { + return this.parsedConfig.map(({ line }) => line).join("\n") + "\n"; + } +}; +var GitRefSpec = class { + constructor({ remotePath, localPath, force, matchPrefix }) { + Object.assign(this, { + remotePath, + localPath, + force, + matchPrefix + }); + } + static from(refspec) { + const [ + forceMatch, + remotePath, + remoteGlobMatch, + localPath, + localGlobMatch + ] = refspec.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1); + const force = forceMatch === "+"; + const remoteIsGlob = remoteGlobMatch === "*"; + const localIsGlob = localGlobMatch === "*"; + if (remoteIsGlob !== localIsGlob) { + throw new InternalError("Invalid refspec"); + } + return new GitRefSpec({ + remotePath, + localPath, + force, + matchPrefix: remoteIsGlob + }); + } + translate(remoteBranch) { + if (this.matchPrefix) { + if (remoteBranch.startsWith(this.remotePath)) { + return this.localPath + remoteBranch.replace(this.remotePath, ""); + } + } else { + if (remoteBranch === this.remotePath) + return this.localPath; + } + return null; + } + reverseTranslate(localBranch) { + if (this.matchPrefix) { + if (localBranch.startsWith(this.localPath)) { + return this.remotePath + localBranch.replace(this.localPath, ""); + } + } else { + if (localBranch === this.localPath) + return this.remotePath; + } + return null; + } +}; +var GitRefSpecSet = class { + constructor(rules = []) { + this.rules = rules; + } + static from(refspecs) { + const rules = []; + for (const refspec of refspecs) { + rules.push(GitRefSpec.from(refspec)); + } + return new GitRefSpecSet(rules); + } + add(refspec) { + const rule = GitRefSpec.from(refspec); + this.rules.push(rule); + } + translate(remoteRefs) { + const result = []; + for (const rule of this.rules) { + for (const remoteRef of remoteRefs) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result.push([remoteRef, localRef]); + } + } + } + return result; + } + translateOne(remoteRef) { + let result = null; + for (const rule of this.rules) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result = localRef; + } + } + return result; + } + localNamespaces() { + return this.rules.filter((rule) => rule.matchPrefix).map((rule) => rule.localPath.replace(/\/$/, "")); + } +}; +function compareRefNames(a, b) { + const _a2 = a.replace(/\^\{\}$/, ""); + const _b = b.replace(/\^\{\}$/, ""); + const tmp = -(_a2 < _b) || +(_a2 > _b); + if (tmp === 0) { + return a.endsWith("^{}") ? 1 : -1; + } + return tmp; +} +function normalizePath(path2) { + return path2.replace(/\/\.\//g, "/").replace(/\/{2,}/g, "/").replace(/^\/\.$/, "/").replace(/^\.\/$/, ".").replace(/^\.\//, "").replace(/\/\.$/, "").replace(/(.+)\/$/, "$1").replace(/^$/, "."); +} +function join(...parts) { + return normalizePath(parts.map(normalizePath).join("/")); +} +var num = (val) => { + val = val.toLowerCase(); + let n = parseInt(val); + if (val.endsWith("k")) + n *= 1024; + if (val.endsWith("m")) + n *= 1024 * 1024; + if (val.endsWith("g")) + n *= 1024 * 1024 * 1024; + return n; +}; +var bool = (val) => { + val = val.trim().toLowerCase(); + if (val === "true" || val === "yes" || val === "on") + return true; + if (val === "false" || val === "no" || val === "off") + return false; + throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${val}`); +}; +var schema = { + core: { + filemode: bool, + bare: bool, + logallrefupdates: bool, + symlinks: bool, + ignorecase: bool, + bigFileThreshold: num + } +}; +var SECTION_LINE_REGEX = /^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/; +var SECTION_REGEX = /^[A-Za-z0-9-.]+$/; +var VARIABLE_LINE_REGEX = /^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/; +var VARIABLE_NAME_REGEX = /^[A-Za-z][A-Za-z-]*$/; +var VARIABLE_VALUE_COMMENT_REGEX = /^(.*?)( *[#;].*)$/; +var extractSectionLine = (line) => { + const matches = SECTION_LINE_REGEX.exec(line); + if (matches != null) { + const [section, subsection] = matches.slice(1); + return [section, subsection]; + } + return null; +}; +var extractVariableLine = (line) => { + const matches = VARIABLE_LINE_REGEX.exec(line); + if (matches != null) { + const [name, rawValue = "true"] = matches.slice(1); + const valueWithoutComments = removeComments(rawValue); + const valueWithoutQuotes = removeQuotes(valueWithoutComments); + return [name, valueWithoutQuotes]; + } + return null; +}; +var removeComments = (rawValue) => { + const commentMatches = VARIABLE_VALUE_COMMENT_REGEX.exec(rawValue); + if (commentMatches == null) { + return rawValue; + } + const [valueWithoutComment, comment] = commentMatches.slice(1); + if (hasOddNumberOfQuotes(valueWithoutComment) && hasOddNumberOfQuotes(comment)) { + return `${valueWithoutComment}${comment}`; + } + return valueWithoutComment; +}; +var hasOddNumberOfQuotes = (text2) => { + const numberOfQuotes = (text2.match(/(?:^|[^\\])"/g) || []).length; + return numberOfQuotes % 2 !== 0; +}; +var removeQuotes = (text2) => { + return text2.split("").reduce((newText, c, idx, text3) => { + const isQuote = c === '"' && text3[idx - 1] !== "\\"; + const isEscapeForQuote = c === "\\" && text3[idx + 1] === '"'; + if (isQuote || isEscapeForQuote) { + return newText; + } + return newText + c; + }, ""); +}; +var lower = (text2) => { + return text2 != null ? text2.toLowerCase() : null; +}; +var getPath = (section, subsection, name) => { + return [lower(section), subsection, lower(name)].filter((a) => a != null).join("."); +}; +var normalizePath$1 = (path2) => { + const pathSegments = path2.split("."); + const section = pathSegments.shift(); + const name = pathSegments.pop(); + const subsection = pathSegments.length ? pathSegments.join(".") : void 0; + return { + section, + subsection, + name, + path: getPath(section, subsection, name), + sectionPath: getPath(section, subsection, null) + }; +}; +var findLastIndex = (array, callback) => { + return array.reduce((lastIndex, item, index2) => { + return callback(item) ? index2 : lastIndex; + }, -1); +}; +var GitConfig = class { + constructor(text2) { + let section = null; + let subsection = null; + this.parsedConfig = text2.split("\n").map((line) => { + let name = null; + let value = null; + const trimmedLine = line.trim(); + const extractedSection = extractSectionLine(trimmedLine); + const isSection = extractedSection != null; + if (isSection) { + ; + [section, subsection] = extractedSection; + } else { + const extractedVariable = extractVariableLine(trimmedLine); + const isVariable = extractedVariable != null; + if (isVariable) { + ; + [name, value] = extractedVariable; + } + } + const path2 = getPath(section, subsection, name); + return { line, isSection, section, subsection, name, value, path: path2 }; + }); + } + static from(text2) { + return new GitConfig(text2); + } + async get(path2, getall = false) { + const normalizedPath = normalizePath$1(path2).path; + const allValues = this.parsedConfig.filter((config) => config.path === normalizedPath).map(({ section, name, value }) => { + const fn = schema[section] && schema[section][name]; + return fn ? fn(value) : value; + }); + return getall ? allValues : allValues.pop(); + } + async getall(path2) { + return this.get(path2, true); + } + async getSubsections(section) { + return this.parsedConfig.filter((config) => config.section === section && config.isSection).map((config) => config.subsection); + } + async deleteSection(section, subsection) { + this.parsedConfig = this.parsedConfig.filter((config) => !(config.section === section && config.subsection === subsection)); + } + async append(path2, value) { + return this.set(path2, value, true); + } + async set(path2, value, append3 = false) { + const { + section, + subsection, + name, + path: normalizedPath, + sectionPath + } = normalizePath$1(path2); + const configIndex = findLastIndex(this.parsedConfig, (config) => config.path === normalizedPath); + if (value == null) { + if (configIndex !== -1) { + this.parsedConfig.splice(configIndex, 1); + } + } else { + if (configIndex !== -1) { + const config = this.parsedConfig[configIndex]; + const modifiedConfig = Object.assign({}, config, { + name, + value, + modified: true + }); + if (append3) { + this.parsedConfig.splice(configIndex + 1, 0, modifiedConfig); + } else { + this.parsedConfig[configIndex] = modifiedConfig; + } + } else { + const sectionIndex = this.parsedConfig.findIndex((config) => config.path === sectionPath); + const newConfig = { + section, + subsection, + name, + value, + modified: true, + path: normalizedPath + }; + if (SECTION_REGEX.test(section) && VARIABLE_NAME_REGEX.test(name)) { + if (sectionIndex >= 0) { + this.parsedConfig.splice(sectionIndex + 1, 0, newConfig); + } else { + const newSection = { + section, + subsection, + modified: true, + path: sectionPath + }; + this.parsedConfig.push(newSection, newConfig); + } + } + } + } + } + toString() { + return this.parsedConfig.map(({ line, section, subsection, name, value, modified: modified2 = false }) => { + if (!modified2) { + return line; + } + if (name != null && value != null) { + if (typeof value === "string" && /[#;]/.test(value)) { + return ` ${name} = "${value}"`; + } + return ` ${name} = ${value}`; + } + if (subsection != null) { + return `[${section} "${subsection}"]`; + } + return `[${section}]`; + }).join("\n"); + } +}; +var GitConfigManager = class { + static async get({ fs, gitdir }) { + const text2 = await fs.read(`${gitdir}/config`, { encoding: "utf8" }); + return GitConfig.from(text2); + } + static async save({ fs, gitdir, config }) { + await fs.write(`${gitdir}/config`, config.toString(), { + encoding: "utf8" + }); + } +}; +var refpaths = (ref) => [ + `${ref}`, + `refs/${ref}`, + `refs/tags/${ref}`, + `refs/heads/${ref}`, + `refs/remotes/${ref}`, + `refs/remotes/${ref}/HEAD` +]; +var GIT_FILES = ["config", "description", "index", "shallow", "commondir"]; +var GitRefManager = class { + static async updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + refspecs = void 0, + prune = false, + pruneTags = false + }) { + for (const value of refs.values()) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + } + const config = await GitConfigManager.get({ fs, gitdir }); + if (!refspecs) { + refspecs = await config.getall(`remote.${remote}.fetch`); + if (refspecs.length === 0) { + throw new NoRefspecError(remote); + } + refspecs.unshift(`+HEAD:refs/remotes/${remote}/HEAD`); + } + const refspec = GitRefSpecSet.from(refspecs); + const actualRefsToWrite = new Map(); + if (pruneTags) { + const tags2 = await GitRefManager.listRefs({ + fs, + gitdir, + filepath: "refs/tags" + }); + await GitRefManager.deleteRefs({ + fs, + gitdir, + refs: tags2.map((tag2) => `refs/tags/${tag2}`) + }); + } + if (tags) { + for (const serverRef of refs.keys()) { + if (serverRef.startsWith("refs/tags") && !serverRef.endsWith("^{}")) { + if (!await GitRefManager.exists({ fs, gitdir, ref: serverRef })) { + const oid = refs.get(serverRef); + actualRefsToWrite.set(serverRef, oid); + } + } + } + } + const refTranslations = refspec.translate([...refs.keys()]); + for (const [serverRef, translatedRef] of refTranslations) { + const value = refs.get(serverRef); + actualRefsToWrite.set(translatedRef, value); + } + const symrefTranslations = refspec.translate([...symrefs.keys()]); + for (const [serverRef, translatedRef] of symrefTranslations) { + const value = symrefs.get(serverRef); + const symtarget = refspec.translateOne(value); + if (symtarget) { + actualRefsToWrite.set(translatedRef, `ref: ${symtarget}`); + } + } + const pruned = []; + if (prune) { + for (const filepath of refspec.localNamespaces()) { + const refs2 = (await GitRefManager.listRefs({ + fs, + gitdir, + filepath + })).map((file) => `${filepath}/${file}`); + for (const ref of refs2) { + if (!actualRefsToWrite.has(ref)) { + pruned.push(ref); + } + } + } + if (pruned.length > 0) { + await GitRefManager.deleteRefs({ fs, gitdir, refs: pruned }); + } + } + for (const [key2, value] of actualRefsToWrite) { + await fs.write(join(gitdir, key2), `${value.trim()} +`, "utf8"); + } + return { pruned }; + } + static async writeRef({ fs, gitdir, ref, value }) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + await fs.write(join(gitdir, ref), `${value.trim()} +`, "utf8"); + } + static async writeSymbolicRef({ fs, gitdir, ref, value }) { + await fs.write(join(gitdir, ref), `ref: ${value.trim()} +`, "utf8"); + } + static async deleteRef({ fs, gitdir, ref }) { + return GitRefManager.deleteRefs({ fs, gitdir, refs: [ref] }); + } + static async deleteRefs({ fs, gitdir, refs }) { + await Promise.all(refs.map((ref) => fs.rm(join(gitdir, ref)))); + let text2 = await fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }); + const packed = GitPackedRefs.from(text2); + const beforeSize = packed.refs.size; + for (const ref of refs) { + if (packed.refs.has(ref)) { + packed.delete(ref); + } + } + if (packed.refs.size < beforeSize) { + text2 = packed.toString(); + await fs.write(`${gitdir}/packed-refs`, text2, { encoding: "utf8" }); + } + } + static async resolve({ fs, gitdir, ref, depth = void 0 }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return ref; + } + } + let sha; + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return GitRefManager.resolve({ fs, gitdir, ref, depth }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = await GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref).filter((p) => !GIT_FILES.includes(p)); + for (const ref2 of allpaths) { + sha = await fs.read(`${gitdir}/${ref2}`, { encoding: "utf8" }) || packedMap.get(ref2); + if (sha) { + return GitRefManager.resolve({ fs, gitdir, ref: sha.trim(), depth }); + } + } + throw new NotFoundError(ref); + } + static async exists({ fs, gitdir, ref }) { + try { + await GitRefManager.expand({ fs, gitdir, ref }); + return true; + } catch (err) { + return false; + } + } + static async expand({ fs, gitdir, ref }) { + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = await GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (await fs.exists(`${gitdir}/${ref2}`)) + return ref2; + if (packedMap.has(ref2)) + return ref2; + } + throw new NotFoundError(ref); + } + static async expandAgainstMap({ ref, map }) { + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (await map.has(ref2)) + return ref2; + } + throw new NotFoundError(ref); + } + static resolveAgainstMap({ ref, fullref = ref, depth = void 0, map }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return { fullref, oid: ref }; + } + } + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return GitRefManager.resolveAgainstMap({ ref, fullref, depth, map }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return { fullref, oid: ref }; + } + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + const sha = map.get(ref2); + if (sha) { + return GitRefManager.resolveAgainstMap({ + ref: sha.trim(), + fullref: ref2, + depth, + map + }); + } + } + throw new NotFoundError(ref); + } + static async packedRefs({ fs, gitdir }) { + const text2 = await fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }); + const packed = GitPackedRefs.from(text2); + return packed.refs; + } + static async listRefs({ fs, gitdir, filepath }) { + const packedMap = GitRefManager.packedRefs({ fs, gitdir }); + let files = null; + try { + files = await fs.readdirDeep(`${gitdir}/${filepath}`); + files = files.map((x) => x.replace(`${gitdir}/${filepath}/`, "")); + } catch (err) { + files = []; + } + for (let key2 of (await packedMap).keys()) { + if (key2.startsWith(filepath)) { + key2 = key2.replace(filepath + "/", ""); + if (!files.includes(key2)) { + files.push(key2); + } + } + } + files.sort(compareRefNames); + return files; + } + static async listBranches({ fs, gitdir, remote }) { + if (remote) { + return GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/remotes/${remote}` + }); + } else { + return GitRefManager.listRefs({ fs, gitdir, filepath: `refs/heads` }); + } + } + static async listTags({ fs, gitdir }) { + const tags = await GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/tags` + }); + return tags.filter((x) => !x.endsWith("^{}")); + } +}; +function compareTreeEntryPath(a, b) { + return compareStrings(appendSlashIfDir(a), appendSlashIfDir(b)); +} +function appendSlashIfDir(entry) { + return entry.mode === "040000" ? entry.path + "/" : entry.path; +} +function mode2type$1(mode) { + switch (mode) { + case "040000": + return "tree"; + case "100644": + return "blob"; + case "100755": + return "blob"; + case "120000": + return "blob"; + case "160000": + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode}`); +} +function parseBuffer(buffer2) { + const _entries = []; + let cursor = 0; + while (cursor < buffer2.length) { + const space2 = buffer2.indexOf(32, cursor); + if (space2 === -1) { + throw new InternalError(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next space character.`); + } + const nullchar = buffer2.indexOf(0, cursor); + if (nullchar === -1) { + throw new InternalError(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next null character.`); + } + let mode = buffer2.slice(cursor, space2).toString("utf8"); + if (mode === "40000") + mode = "040000"; + const type = mode2type$1(mode); + const path2 = buffer2.slice(space2 + 1, nullchar).toString("utf8"); + if (path2.includes("\\") || path2.includes("/")) { + throw new UnsafeFilepathError(path2); + } + const oid = buffer2.slice(nullchar + 1, nullchar + 21).toString("hex"); + cursor = nullchar + 21; + _entries.push({ mode, path: path2, oid, type }); + } + return _entries; +} +function limitModeToAllowed(mode) { + if (typeof mode === "number") { + mode = mode.toString(8); + } + if (mode.match(/^0?4.*/)) + return "040000"; + if (mode.match(/^1006.*/)) + return "100644"; + if (mode.match(/^1007.*/)) + return "100755"; + if (mode.match(/^120.*/)) + return "120000"; + if (mode.match(/^160.*/)) + return "160000"; + throw new InternalError(`Could not understand file mode: ${mode}`); +} +function nudgeIntoShape(entry) { + if (!entry.oid && entry.sha) { + entry.oid = entry.sha; + } + entry.mode = limitModeToAllowed(entry.mode); + if (!entry.type) { + entry.type = mode2type$1(entry.mode); + } + return entry; +} +var GitTree = class { + constructor(entries) { + if (Buffer2.isBuffer(entries)) { + this._entries = parseBuffer(entries); + } else if (Array.isArray(entries)) { + this._entries = entries.map(nudgeIntoShape); + } else { + throw new InternalError("invalid type passed to GitTree constructor"); + } + this._entries.sort(comparePath); + } + static from(tree) { + return new GitTree(tree); + } + render() { + return this._entries.map((entry) => `${entry.mode} ${entry.type} ${entry.oid} ${entry.path}`).join("\n"); + } + toObject() { + const entries = [...this._entries]; + entries.sort(compareTreeEntryPath); + return Buffer2.concat(entries.map((entry) => { + const mode = Buffer2.from(entry.mode.replace(/^0/, "")); + const space2 = Buffer2.from(" "); + const path2 = Buffer2.from(entry.path, "utf8"); + const nullchar = Buffer2.from([0]); + const oid = Buffer2.from(entry.oid, "hex"); + return Buffer2.concat([mode, space2, path2, nullchar, oid]); + })); + } + entries() { + return this._entries; + } + *[Symbol.iterator]() { + for (const entry of this._entries) { + yield entry; + } + } +}; +var GitObject = class { + static wrap({ type, object }) { + return Buffer2.concat([ + Buffer2.from(`${type} ${object.byteLength.toString()}\0`), + Buffer2.from(object) + ]); + } + static unwrap(buffer2) { + const s = buffer2.indexOf(32); + const i = buffer2.indexOf(0); + const type = buffer2.slice(0, s).toString("utf8"); + const length = buffer2.slice(s + 1, i).toString("utf8"); + const actualLength = buffer2.length - (i + 1); + if (parseInt(length) !== actualLength) { + throw new InternalError(`Length mismatch: expected ${length} bytes but got ${actualLength} instead.`); + } + return { + type, + object: Buffer2.from(buffer2.slice(i + 1)) + }; + } +}; +async function readObjectLoose({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const file = await fs.read(`${gitdir}/${source}`); + if (!file) { + return null; + } + return { object: file, format: "deflated", source }; +} +function applyDelta(delta, source) { + const reader = new BufferCursor(delta); + const sourceSize = readVarIntLE(reader); + if (sourceSize !== source.byteLength) { + throw new InternalError(`applyDelta expected source buffer to be ${sourceSize} bytes but the provided buffer was ${source.length} bytes`); + } + const targetSize = readVarIntLE(reader); + let target; + const firstOp = readOp(reader, source); + if (firstOp.byteLength === targetSize) { + target = firstOp; + } else { + target = Buffer2.alloc(targetSize); + const writer = new BufferCursor(target); + writer.copy(firstOp); + while (!reader.eof()) { + writer.copy(readOp(reader, source)); + } + const tell = writer.tell(); + if (targetSize !== tell) { + throw new InternalError(`applyDelta expected target buffer to be ${targetSize} bytes but the resulting buffer was ${tell} bytes`); + } + } + return target; +} +function readVarIntLE(reader) { + let result = 0; + let shift = 0; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +function readCompactLE(reader, flags, size) { + let result = 0; + let shift = 0; + while (size--) { + if (flags & 1) { + result |= reader.readUInt8() << shift; + } + flags >>= 1; + shift += 8; + } + return result; +} +function readOp(reader, source) { + const byte = reader.readUInt8(); + const COPY = 128; + const OFFS = 15; + const SIZE = 112; + if (byte & COPY) { + const offset = readCompactLE(reader, byte & OFFS, 4); + let size = readCompactLE(reader, (byte & SIZE) >> 4, 3); + if (size === 0) + size = 65536; + return source.slice(offset, offset + size); + } else { + return reader.slice(byte); + } +} +function fromValue(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ done: queue.length === 0, value: queue.pop() }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue(iterable); +} +var StreamReader = class { + constructor(stream) { + this.stream = getIterator(stream); + this.buffer = null; + this.cursor = 0; + this.undoCursor = 0; + this.started = false; + this._ended = false; + this._discardedBytes = 0; + } + eof() { + return this._ended && this.cursor === this.buffer.length; + } + tell() { + return this._discardedBytes + this.cursor; + } + async byte() { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor === this.buffer.length) { + await this._loadnext(); + if (this._ended) + return; + } + this._moveCursor(1); + return this.buffer[this.undoCursor]; + } + async chunk() { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor === this.buffer.length) { + await this._loadnext(); + if (this._ended) + return; + } + this._moveCursor(this.buffer.length); + return this.buffer.slice(this.undoCursor, this.cursor); + } + async read(n) { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + await this._accumulate(n); + } + this._moveCursor(n); + return this.buffer.slice(this.undoCursor, this.cursor); + } + async skip(n) { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + await this._accumulate(n); + } + this._moveCursor(n); + } + async undo() { + this.cursor = this.undoCursor; + } + async _next() { + this.started = true; + let { done, value } = await this.stream.next(); + if (done) { + this._ended = true; + } + if (value) { + value = Buffer2.from(value); + } + return value; + } + _trim() { + this.buffer = this.buffer.slice(this.undoCursor); + this.cursor -= this.undoCursor; + this._discardedBytes += this.undoCursor; + this.undoCursor = 0; + } + _moveCursor(n) { + this.undoCursor = this.cursor; + this.cursor += n; + if (this.cursor > this.buffer.length) { + this.cursor = this.buffer.length; + } + } + async _accumulate(n) { + if (this._ended) + return; + const buffers = [this.buffer]; + while (this.cursor + n > lengthBuffers(buffers)) { + const nextbuffer = await this._next(); + if (this._ended) + break; + buffers.push(nextbuffer); + } + this.buffer = Buffer2.concat(buffers); + } + async _loadnext() { + this._discardedBytes += this.buffer.length; + this.undoCursor = 0; + this.cursor = 0; + this.buffer = await this._next(); + } + async _init() { + this.buffer = await this._next(); + } +}; +function lengthBuffers(buffers) { + return buffers.reduce((acc, buffer2) => acc + buffer2.length, 0); +} +async function listpack(stream, onData) { + const reader = new StreamReader(stream); + let PACK = await reader.read(4); + PACK = PACK.toString("utf8"); + if (PACK !== "PACK") { + throw new InternalError(`Invalid PACK header '${PACK}'`); + } + let version2 = await reader.read(4); + version2 = version2.readUInt32BE(0); + if (version2 !== 2) { + throw new InternalError(`Invalid packfile version: ${version2}`); + } + let numObjects = await reader.read(4); + numObjects = numObjects.readUInt32BE(0); + if (numObjects < 1) + return; + while (!reader.eof() && numObjects--) { + const offset = reader.tell(); + const { type, length, ofs, reference } = await parseHeader(reader); + const inflator = new import_pako.default.Inflate(); + while (!inflator.result) { + const chunk = await reader.chunk(); + if (!chunk) + break; + inflator.push(chunk, false); + if (inflator.err) { + throw new InternalError(`Pako error: ${inflator.msg}`); + } + if (inflator.result) { + if (inflator.result.length !== length) { + throw new InternalError(`Inflated object size is different from that stated in packfile.`); + } + await reader.undo(); + await reader.read(chunk.length - inflator.strm.avail_in); + const end = reader.tell(); + await onData({ + data: inflator.result, + type, + num: numObjects, + offset, + end, + reference, + ofs + }); + } + } + } +} +async function parseHeader(reader) { + let byte = await reader.byte(); + const type = byte >> 4 & 7; + let length = byte & 15; + if (byte & 128) { + let shift = 4; + do { + byte = await reader.byte(); + length |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + } + let ofs; + let reference; + if (type === 6) { + let shift = 0; + ofs = 0; + const bytes = []; + do { + byte = await reader.byte(); + ofs |= (byte & 127) << shift; + shift += 7; + bytes.push(byte); + } while (byte & 128); + reference = Buffer2.from(bytes); + } + if (type === 7) { + const buf = await reader.read(20); + reference = buf; + } + return { type, length, ofs, reference }; +} +var supportsDecompressionStream = false; +async function inflate(buffer2) { + if (supportsDecompressionStream === null) { + supportsDecompressionStream = testDecompressionStream(); + } + return supportsDecompressionStream ? browserInflate(buffer2) : import_pako.default.inflate(buffer2); +} +async function browserInflate(buffer2) { + const ds = new DecompressionStream("deflate"); + const d = new Blob([buffer2]).stream().pipeThrough(ds); + return new Uint8Array(await new Response(d).arrayBuffer()); +} +function testDecompressionStream() { + try { + const ds = new DecompressionStream("deflate"); + if (ds) + return true; + } catch (_) { + } + return false; +} +function decodeVarInt(reader) { + const bytes = []; + let byte = 0; + let multibyte = 0; + do { + byte = reader.readUInt8(); + const lastSeven = byte & 127; + bytes.push(lastSeven); + multibyte = byte & 128; + } while (multibyte); + return bytes.reduce((a, b) => a + 1 << 7 | b, -1); +} +function otherVarIntDecode(reader, startWith) { + let result = startWith; + let shift = 4; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +var GitPackIndex = class { + constructor(stuff) { + Object.assign(this, stuff); + this.offsetCache = {}; + } + static async fromIdx({ idx, getExternalRefDelta }) { + const reader = new BufferCursor(idx); + const magic = reader.slice(4).toString("hex"); + if (magic !== "ff744f63") { + return; + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError(`Unable to read version ${version2} packfile IDX. (Only version 2 supported)`); + } + if (idx.byteLength > 2048 * 1024 * 1024) { + throw new InternalError(`To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.`); + } + reader.seek(reader.tell() + 4 * 255); + const size = reader.readUInt32BE(); + const hashes = []; + for (let i = 0; i < size; i++) { + const hash2 = reader.slice(20).toString("hex"); + hashes[i] = hash2; + } + reader.seek(reader.tell() + 4 * size); + const offsets = new Map(); + for (let i = 0; i < size; i++) { + offsets.set(hashes[i], reader.readUInt32BE()); + } + const packfileSha = reader.slice(20).toString("hex"); + return new GitPackIndex({ + hashes, + crcs: {}, + offsets, + packfileSha, + getExternalRefDelta + }); + } + static async fromPack({ pack, getExternalRefDelta, onProgress }) { + const listpackTypes = { + 1: "commit", + 2: "tree", + 3: "blob", + 4: "tag", + 6: "ofs-delta", + 7: "ref-delta" + }; + const offsetToObject = {}; + const packfileSha = pack.slice(-20).toString("hex"); + const hashes = []; + const crcs = {}; + const offsets = new Map(); + let totalObjectCount = null; + let lastPercent = null; + await listpack([pack], async ({ data, type, reference, offset, num: num2 }) => { + if (totalObjectCount === null) + totalObjectCount = num2; + const percent = Math.floor((totalObjectCount - num2) * 100 / totalObjectCount); + if (percent !== lastPercent) { + if (onProgress) { + await onProgress({ + phase: "Receiving objects", + loaded: totalObjectCount - num2, + total: totalObjectCount + }); + } + } + lastPercent = percent; + type = listpackTypes[type]; + if (["commit", "tree", "blob", "tag"].includes(type)) { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ofs-delta") { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ref-delta") { + offsetToObject[offset] = { + type, + offset + }; + } + }); + const offsetArray = Object.keys(offsetToObject).map(Number); + for (const [i, start] of offsetArray.entries()) { + const end = i + 1 === offsetArray.length ? pack.byteLength - 20 : offsetArray[i + 1]; + const o = offsetToObject[start]; + const crc = import_crc_32.default.buf(pack.slice(start, end)) >>> 0; + o.end = end; + o.crc = crc; + } + const p = new GitPackIndex({ + pack: Promise.resolve(pack), + packfileSha, + crcs, + hashes, + offsets, + getExternalRefDelta + }); + lastPercent = null; + let count = 0; + const objectsByDepth = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + for (let offset in offsetToObject) { + offset = Number(offset); + const percent = Math.floor(count * 100 / totalObjectCount); + if (percent !== lastPercent) { + if (onProgress) { + await onProgress({ + phase: "Resolving deltas", + loaded: count, + total: totalObjectCount + }); + } + } + count++; + lastPercent = percent; + const o = offsetToObject[offset]; + if (o.oid) + continue; + try { + p.readDepth = 0; + p.externalReadDepth = 0; + const { type, object } = await p.readSlice({ start: offset }); + objectsByDepth[p.readDepth] += 1; + const oid = await shasum(GitObject.wrap({ type, object })); + o.oid = oid; + hashes.push(oid); + offsets.set(oid, offset); + crcs[oid] = o.crc; + } catch (err) { + continue; + } + } + hashes.sort(); + return p; + } + async toBuffer() { + const buffers = []; + const write = (str, encoding) => { + buffers.push(Buffer2.from(str, encoding)); + }; + write("ff744f63", "hex"); + write("00000002", "hex"); + const fanoutBuffer = new BufferCursor(Buffer2.alloc(256 * 4)); + for (let i = 0; i < 256; i++) { + let count = 0; + for (const hash2 of this.hashes) { + if (parseInt(hash2.slice(0, 2), 16) <= i) + count++; + } + fanoutBuffer.writeUInt32BE(count); + } + buffers.push(fanoutBuffer.buffer); + for (const hash2 of this.hashes) { + write(hash2, "hex"); + } + const crcsBuffer = new BufferCursor(Buffer2.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + crcsBuffer.writeUInt32BE(this.crcs[hash2]); + } + buffers.push(crcsBuffer.buffer); + const offsetsBuffer = new BufferCursor(Buffer2.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + offsetsBuffer.writeUInt32BE(this.offsets.get(hash2)); + } + buffers.push(offsetsBuffer.buffer); + write(this.packfileSha, "hex"); + const totalBuffer = Buffer2.concat(buffers); + const sha = await shasum(totalBuffer); + const shaBuffer = Buffer2.alloc(20); + shaBuffer.write(sha, "hex"); + return Buffer2.concat([totalBuffer, shaBuffer]); + } + async load({ pack }) { + this.pack = pack; + } + async unload() { + this.pack = null; + } + async read({ oid }) { + if (!this.offsets.get(oid)) { + if (this.getExternalRefDelta) { + this.externalReadDepth++; + return this.getExternalRefDelta(oid); + } else { + throw new InternalError(`Could not read object ${oid} from packfile`); + } + } + const start = this.offsets.get(oid); + return this.readSlice({ start }); + } + async readSlice({ start }) { + if (this.offsetCache[start]) { + return Object.assign({}, this.offsetCache[start]); + } + this.readDepth++; + const types2 = { + 16: "commit", + 32: "tree", + 48: "blob", + 64: "tag", + 96: "ofs_delta", + 112: "ref_delta" + }; + if (!this.pack) { + throw new InternalError("Tried to read from a GitPackIndex with no packfile loaded into memory"); + } + const raw = (await this.pack).slice(start); + const reader = new BufferCursor(raw); + const byte = reader.readUInt8(); + const btype = byte & 112; + let type = types2[btype]; + if (type === void 0) { + throw new InternalError("Unrecognized type: 0b" + btype.toString(2)); + } + const lastFour = byte & 15; + let length = lastFour; + const multibyte = byte & 128; + if (multibyte) { + length = otherVarIntDecode(reader, lastFour); + } + let base = null; + let object = null; + if (type === "ofs_delta") { + const offset = decodeVarInt(reader); + const baseOffset = start - offset; + ({ object: base, type } = await this.readSlice({ start: baseOffset })); + } + if (type === "ref_delta") { + const oid = reader.slice(20).toString("hex"); + ({ object: base, type } = await this.read({ oid })); + } + const buffer2 = raw.slice(reader.tell()); + object = Buffer2.from(await inflate(buffer2)); + if (object.byteLength !== length) { + throw new InternalError(`Packfile told us object would have length ${length} but it had length ${object.byteLength}`); + } + if (base) { + object = Buffer2.from(applyDelta(object, base)); + } + if (this.readDepth > 3) { + this.offsetCache[start] = { type, object }; + } + return { type, format: "content", object }; + } +}; +var PackfileCache = Symbol("PackfileCache"); +async function loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + const idx = await fs.read(filename); + return GitPackIndex.fromIdx({ idx, getExternalRefDelta }); +} +function readPackIndex({ + fs, + cache, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + if (!cache[PackfileCache]) + cache[PackfileCache] = new Map(); + let p = cache[PackfileCache].get(filename); + if (!p) { + p = loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix + }); + cache[PackfileCache].set(filename, p); + } + return p; +} +async function readObjectPacked({ + fs, + cache, + gitdir, + oid, + format = "content", + getExternalRefDelta +}) { + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + if (p.offsets.has(oid)) { + if (!p.pack) { + const packFile = indexFile.replace(/idx$/, "pack"); + p.pack = fs.read(packFile); + } + const result = await p.read({ oid, getExternalRefDelta }); + result.format = "content"; + result.source = `objects/pack/${filename.replace(/idx$/, "pack")}`; + return result; + } + } + return null; +} +async function _readObject({ + fs, + cache, + gitdir, + oid, + format = "content" +}) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result; + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + result = { format: "wrapped", object: Buffer2.from(`tree 0\0`) }; + } + if (!result) { + result = await readObjectLoose({ fs, gitdir, oid }); + } + if (!result) { + result = await readObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + if (!result) { + throw new NotFoundError(oid); + } + if (format === "deflated") { + return result; + } + if (result.format === "deflated") { + result.object = Buffer2.from(await inflate(result.object)); + result.format = "wrapped"; + } + if (result.format === "wrapped") { + if (format === "wrapped" && result.format === "wrapped") { + return result; + } + const sha = await shasum(result.object); + if (sha !== oid) { + throw new InternalError(`SHA check failed! Expected ${oid}, computed ${sha}`); + } + const { object, type } = GitObject.unwrap(result.object); + result.type = type; + result.object = object; + result.format = "content"; + } + if (result.format === "content") { + if (format === "content") + return result; + return; + } + throw new InternalError(`invalid format "${result.format}"`); +} +var AlreadyExistsError = class extends BaseError { + constructor(noun, where, canForce = true) { + super(`Failed to create ${noun} at ${where} because it already exists.${canForce ? ` (Hint: use 'force: true' parameter to overwrite existing ${noun}.)` : ""}`); + this.code = this.name = AlreadyExistsError.code; + this.data = { noun, where, canForce }; + } +}; +AlreadyExistsError.code = "AlreadyExistsError"; +var AmbiguousError = class extends BaseError { + constructor(nouns, short, matches) { + super(`Found multiple ${nouns} matching "${short}" (${matches.join(", ")}). Use a longer abbreviation length to disambiguate them.`); + this.code = this.name = AmbiguousError.code; + this.data = { nouns, short, matches }; + } +}; +AmbiguousError.code = "AmbiguousError"; +var CheckoutConflictError = class extends BaseError { + constructor(filepaths) { + super(`Your local changes to the following files would be overwritten by checkout: ${filepaths.join(", ")}`); + this.code = this.name = CheckoutConflictError.code; + this.data = { filepaths }; + } +}; +CheckoutConflictError.code = "CheckoutConflictError"; +var CommitNotFetchedError = class extends BaseError { + constructor(ref, oid) { + super(`Failed to checkout "${ref}" because commit ${oid} is not available locally. Do a git fetch to make the branch available locally.`); + this.code = this.name = CommitNotFetchedError.code; + this.data = { ref, oid }; + } +}; +CommitNotFetchedError.code = "CommitNotFetchedError"; +var EmptyServerResponseError = class extends BaseError { + constructor() { + super(`Empty response from git server.`); + this.code = this.name = EmptyServerResponseError.code; + this.data = {}; + } +}; +EmptyServerResponseError.code = "EmptyServerResponseError"; +var FastForwardError = class extends BaseError { + constructor() { + super(`A simple fast-forward merge was not possible.`); + this.code = this.name = FastForwardError.code; + this.data = {}; + } +}; +FastForwardError.code = "FastForwardError"; +var GitPushError = class extends BaseError { + constructor(prettyDetails, result) { + super(`One or more branches were not updated: ${prettyDetails}`); + this.code = this.name = GitPushError.code; + this.data = { prettyDetails, result }; + } +}; +GitPushError.code = "GitPushError"; +var HttpError = class extends BaseError { + constructor(statusCode, statusMessage, response) { + super(`HTTP Error: ${statusCode} ${statusMessage}`); + this.code = this.name = HttpError.code; + this.data = { statusCode, statusMessage, response }; + } +}; +HttpError.code = "HttpError"; +var InvalidFilepathError = class extends BaseError { + constructor(reason) { + let message = "invalid filepath"; + if (reason === "leading-slash" || reason === "trailing-slash") { + message = `"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.`; + } else if (reason === "directory") { + message = `"filepath" should not be a directory.`; + } + super(message); + this.code = this.name = InvalidFilepathError.code; + this.data = { reason }; + } +}; +InvalidFilepathError.code = "InvalidFilepathError"; +var InvalidRefNameError = class extends BaseError { + constructor(ref, suggestion) { + super(`"${ref}" would be an invalid git reference. (Hint: a valid alternative would be "${suggestion}".)`); + this.code = this.name = InvalidRefNameError.code; + this.data = { ref, suggestion }; + } +}; +InvalidRefNameError.code = "InvalidRefNameError"; +var MaxDepthError = class extends BaseError { + constructor(depth) { + super(`Maximum search depth of ${depth} exceeded.`); + this.code = this.name = MaxDepthError.code; + this.data = { depth }; + } +}; +MaxDepthError.code = "MaxDepthError"; +var MergeNotSupportedError = class extends BaseError { + constructor() { + super(`Merges with conflicts are not supported yet.`); + this.code = this.name = MergeNotSupportedError.code; + this.data = {}; + } +}; +MergeNotSupportedError.code = "MergeNotSupportedError"; +var MergeConflictError = class extends BaseError { + constructor(filepaths) { + super(`Automatic merge failed with one or more merge conflicts in the following files: ${filepaths.toString()}. Fix conflicts then commit the result.`); + this.code = this.name = MergeConflictError.code; + this.data = { filepaths }; + } +}; +MergeConflictError.code = "MergeConflictError"; +var MissingNameError = class extends BaseError { + constructor(role) { + super(`No name was provided for ${role} in the argument or in the .git/config file.`); + this.code = this.name = MissingNameError.code; + this.data = { role }; + } +}; +MissingNameError.code = "MissingNameError"; +var MissingParameterError = class extends BaseError { + constructor(parameter) { + super(`The function requires a "${parameter}" parameter but none was provided.`); + this.code = this.name = MissingParameterError.code; + this.data = { parameter }; + } +}; +MissingParameterError.code = "MissingParameterError"; +var MultipleGitError = class extends BaseError { + constructor(errors) { + super(`There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more`); + this.code = this.name = MultipleGitError.code; + this.data = { errors }; + this.errors = errors; + } +}; +MultipleGitError.code = "MultipleGitError"; +var ParseError = class extends BaseError { + constructor(expected, actual) { + super(`Expected "${expected}" but received "${actual}".`); + this.code = this.name = ParseError.code; + this.data = { expected, actual }; + } +}; +ParseError.code = "ParseError"; +var PushRejectedError = class extends BaseError { + constructor(reason) { + let message = ""; + if (reason === "not-fast-forward") { + message = " because it was not a simple fast-forward"; + } else if (reason === "tag-exists") { + message = " because tag already exists"; + } + super(`Push rejected${message}. Use "force: true" to override.`); + this.code = this.name = PushRejectedError.code; + this.data = { reason }; + } +}; +PushRejectedError.code = "PushRejectedError"; +var RemoteCapabilityError = class extends BaseError { + constructor(capability, parameter) { + super(`Remote does not support the "${capability}" so the "${parameter}" parameter cannot be used.`); + this.code = this.name = RemoteCapabilityError.code; + this.data = { capability, parameter }; + } +}; +RemoteCapabilityError.code = "RemoteCapabilityError"; +var SmartHttpError = class extends BaseError { + constructor(preview, response) { + super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${preview}`); + this.code = this.name = SmartHttpError.code; + this.data = { preview, response }; + } +}; +SmartHttpError.code = "SmartHttpError"; +var UnknownTransportError = class extends BaseError { + constructor(url, transport, suggestion) { + super(`Git remote "${url}" uses an unrecognized transport protocol: "${transport}"`); + this.code = this.name = UnknownTransportError.code; + this.data = { url, transport, suggestion }; + } +}; +UnknownTransportError.code = "UnknownTransportError"; +var UrlParseError = class extends BaseError { + constructor(url) { + super(`Cannot parse remote URL: "${url}"`); + this.code = this.name = UrlParseError.code; + this.data = { url }; + } +}; +UrlParseError.code = "UrlParseError"; +var UserCanceledError = class extends BaseError { + constructor() { + super(`The operation was canceled.`); + this.code = this.name = UserCanceledError.code; + this.data = {}; + } +}; +UserCanceledError.code = "UserCanceledError"; +var Errors = /* @__PURE__ */ Object.freeze({ + __proto__: null, + AlreadyExistsError, + AmbiguousError, + CheckoutConflictError, + CommitNotFetchedError, + EmptyServerResponseError, + FastForwardError, + GitPushError, + HttpError, + InternalError, + InvalidFilepathError, + InvalidOidError, + InvalidRefNameError, + MaxDepthError, + MergeNotSupportedError, + MergeConflictError, + MissingNameError, + MissingParameterError, + MultipleGitError, + NoRefspecError, + NotFoundError, + ObjectTypeError, + ParseError, + PushRejectedError, + RemoteCapabilityError, + SmartHttpError, + UnknownTransportError, + UnsafeFilepathError, + UrlParseError, + UserCanceledError +}); +function formatAuthor({ name, email, timestamp, timezoneOffset }) { + timezoneOffset = formatTimezoneOffset(timezoneOffset); + return `${name} <${email}> ${timestamp} ${timezoneOffset}`; +} +function formatTimezoneOffset(minutes) { + const sign = simpleSign(negateExceptForZero(minutes)); + minutes = Math.abs(minutes); + const hours = Math.floor(minutes / 60); + minutes -= hours * 60; + let strHours = String(hours); + let strMinutes = String(minutes); + if (strHours.length < 2) + strHours = "0" + strHours; + if (strMinutes.length < 2) + strMinutes = "0" + strMinutes; + return (sign === -1 ? "-" : "+") + strHours + strMinutes; +} +function simpleSign(n) { + return Math.sign(n) || (Object.is(n, -0) ? -1 : 1); +} +function negateExceptForZero(n) { + return n === 0 ? n : -n; +} +function normalizeNewlines(str) { + str = str.replace(/\r/g, ""); + str = str.replace(/^\n+/, ""); + str = str.replace(/\n+$/, "") + "\n"; + return str; +} +function parseAuthor(author) { + const [, name, email, timestamp, offset] = author.match(/^(.*) <(.*)> (.*) (.*)$/); + return { + name, + email, + timestamp: Number(timestamp), + timezoneOffset: parseTimezoneOffset(offset) + }; +} +function parseTimezoneOffset(offset) { + let [, sign, hours, minutes] = offset.match(/(\+|-)(\d\d)(\d\d)/); + minutes = (sign === "+" ? 1 : -1) * (Number(hours) * 60 + Number(minutes)); + return negateExceptForZero$1(minutes); +} +function negateExceptForZero$1(n) { + return n === 0 ? n : -n; +} +var GitAnnotatedTag = class { + constructor(tag2) { + if (typeof tag2 === "string") { + this._tag = tag2; + } else if (Buffer2.isBuffer(tag2)) { + this._tag = tag2.toString("utf8"); + } else if (typeof tag2 === "object") { + this._tag = GitAnnotatedTag.render(tag2); + } else { + throw new InternalError("invalid type passed to GitAnnotatedTag constructor"); + } + } + static from(tag2) { + return new GitAnnotatedTag(tag2); + } + static render(obj) { + return `object ${obj.object} +type ${obj.type} +tag ${obj.tag} +tagger ${formatAuthor(obj.tagger)} + +${obj.message} +${obj.gpgsig ? obj.gpgsig : ""}`; + } + justHeaders() { + return this._tag.slice(0, this._tag.indexOf("\n\n")); + } + message() { + const tag2 = this.withoutSignature(); + return tag2.slice(tag2.indexOf("\n\n") + 2); + } + parse() { + return Object.assign(this.headers(), { + message: this.message(), + gpgsig: this.gpgsig() + }); + } + render() { + return this._tag; + } + headers() { + const headers = this.justHeaders().split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = {}; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.tagger) { + obj.tagger = parseAuthor(obj.tagger); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + withoutSignature() { + const tag2 = normalizeNewlines(this._tag); + if (tag2.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) + return tag2; + return tag2.slice(0, tag2.lastIndexOf("\n-----BEGIN PGP SIGNATURE-----")); + } + gpgsig() { + if (this._tag.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) + return; + const signature = this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"), this._tag.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length); + return normalizeNewlines(signature); + } + payload() { + return this.withoutSignature() + "\n"; + } + toObject() { + return Buffer2.from(this._tag, "utf8"); + } + static async sign(tag2, sign, secretKey) { + const payload = tag2.payload(); + let { signature } = await sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const signedTag = payload + signature; + return GitAnnotatedTag.from(signedTag); + } +}; +function indent(str) { + return str.trim().split("\n").map((x) => " " + x).join("\n") + "\n"; +} +function outdent(str) { + return str.split("\n").map((x) => x.replace(/^ /, "")).join("\n"); +} +var GitCommit = class { + constructor(commit2) { + if (typeof commit2 === "string") { + this._commit = commit2; + } else if (Buffer2.isBuffer(commit2)) { + this._commit = commit2.toString("utf8"); + } else if (typeof commit2 === "object") { + this._commit = GitCommit.render(commit2); + } else { + throw new InternalError("invalid type passed to GitCommit constructor"); + } + } + static fromPayloadSignature({ payload, signature }) { + const headers = GitCommit.justHeaders(payload); + const message = GitCommit.justMessage(payload); + const commit2 = normalizeNewlines(headers + "\ngpgsig" + indent(signature) + "\n" + message); + return new GitCommit(commit2); + } + static from(commit2) { + return new GitCommit(commit2); + } + toObject() { + return Buffer2.from(this._commit, "utf8"); + } + headers() { + return this.parseHeaders(); + } + message() { + return GitCommit.justMessage(this._commit); + } + parse() { + return Object.assign({ message: this.message() }, this.headers()); + } + static justMessage(commit2) { + return normalizeNewlines(commit2.slice(commit2.indexOf("\n\n") + 2)); + } + static justHeaders(commit2) { + return commit2.slice(0, commit2.indexOf("\n\n")); + } + parseHeaders() { + const headers = GitCommit.justHeaders(this._commit).split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = { + parent: [] + }; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.author) { + obj.author = parseAuthor(obj.author); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + static renderHeaders(obj) { + let headers = ""; + if (obj.tree) { + headers += `tree ${obj.tree} +`; + } else { + headers += `tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 +`; + } + if (obj.parent) { + if (obj.parent.length === void 0) { + throw new InternalError(`commit 'parent' property should be an array`); + } + for (const p of obj.parent) { + headers += `parent ${p} +`; + } + } + const author = obj.author; + headers += `author ${formatAuthor(author)} +`; + const committer = obj.committer || obj.author; + headers += `committer ${formatAuthor(committer)} +`; + if (obj.gpgsig) { + headers += "gpgsig" + indent(obj.gpgsig); + } + return headers; + } + static render(obj) { + return GitCommit.renderHeaders(obj) + "\n" + normalizeNewlines(obj.message); + } + render() { + return this._commit; + } + withoutSignature() { + const commit2 = normalizeNewlines(this._commit); + if (commit2.indexOf("\ngpgsig") === -1) + return commit2; + const headers = commit2.slice(0, commit2.indexOf("\ngpgsig")); + const message = commit2.slice(commit2.indexOf("-----END PGP SIGNATURE-----\n") + "-----END PGP SIGNATURE-----\n".length); + return normalizeNewlines(headers + "\n" + message); + } + isolateSignature() { + const signature = this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"), this._commit.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length); + return outdent(signature); + } + static async sign(commit2, sign, secretKey) { + const payload = commit2.withoutSignature(); + const message = GitCommit.justMessage(commit2._commit); + let { signature } = await sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const headers = GitCommit.justHeaders(commit2._commit); + const signedCommit = headers + "\ngpgsig" + indent(signature) + "\n" + message; + return GitCommit.from(signedCommit); + } +}; +async function resolveTree({ fs, cache, gitdir, oid }) { + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + return { tree: GitTree.from([]), oid }; + } + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type === "commit") { + oid = GitCommit.from(object).parse().tree; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "tree"); + } + return { tree: GitTree.from(object), oid }; +} +var GitWalkerRepo = class { + constructor({ fs, gitdir, ref, cache }) { + this.fs = fs; + this.cache = cache; + this.gitdir = gitdir; + this.mapPromise = (async () => { + const map = new Map(); + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (e) { + if (e instanceof NotFoundError) { + oid = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"; + } + } + const tree = await resolveTree({ fs, cache: this.cache, gitdir, oid }); + tree.type = "tree"; + tree.mode = "40000"; + map.set(".", tree); + return map; + })(); + const walker = this; + this.ConstructEntry = class TreeEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const { fs, cache, gitdir } = this; + const map = await this.mapPromise; + const obj = map.get(filepath); + if (!obj) + throw new Error(`No obj for ${filepath}`); + const oid = obj.oid; + if (!oid) + throw new Error(`No oid for obj ${JSON.stringify(obj)}`); + if (obj.type !== "tree") { + return null; + } + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type !== obj.type) { + throw new ObjectTypeError(oid, type, obj.type); + } + const tree = GitTree.from(object); + for (const entry2 of tree) { + map.set(join(filepath, entry2.path), entry2); + } + return tree.entries().map((entry2) => join(filepath, entry2.path)); + } + async type(entry) { + if (entry._type === false) { + const map = await this.mapPromise; + const { type } = map.get(entry._fullpath); + entry._type = type; + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + const map = await this.mapPromise; + const { mode } = map.get(entry._fullpath); + entry._mode = normalizeMode(parseInt(mode, 8)); + } + return entry._mode; + } + async stat(_entry) { + } + async content(entry) { + if (entry._content === false) { + const map = await this.mapPromise; + const { fs, cache, gitdir } = this; + const obj = map.get(entry._fullpath); + const oid = obj.oid; + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type !== "blob") { + entry._content = void 0; + } else { + entry._content = new Uint8Array(object); + } + } + return entry._content; + } + async oid(entry) { + if (entry._oid === false) { + const map = await this.mapPromise; + const obj = map.get(entry._fullpath); + entry._oid = obj.oid; + } + return entry._oid; + } +}; +function TREE({ ref = "HEAD" } = {}) { + const o = Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerRepo({ fs, gitdir, ref, cache }); + } + }); + Object.freeze(o); + return o; +} +var GitWalkerFs = class { + constructor({ fs, dir, gitdir, cache }) { + this.fs = fs; + this.cache = cache; + this.dir = dir; + this.gitdir = gitdir; + const walker = this; + this.ConstructEntry = class WorkdirEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const { fs, dir } = this; + const names = await fs.readdir(join(dir, filepath)); + if (names === null) + return null; + return names.map((name) => join(filepath, name)); + } + async type(entry) { + if (entry._type === false) { + await entry.stat(); + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + await entry.stat(); + } + return entry._mode; + } + async stat(entry) { + if (entry._stat === false) { + const { fs, dir } = this; + let stat = await fs.lstat(`${dir}/${entry._fullpath}`); + if (!stat) { + throw new Error(`ENOENT: no such file or directory, lstat '${entry._fullpath}'`); + } + let type = stat.isDirectory() ? "tree" : "blob"; + if (type === "blob" && !stat.isFile() && !stat.isSymbolicLink()) { + type = "special"; + } + entry._type = type; + stat = normalizeStats(stat); + entry._mode = stat.mode; + if (stat.size === -1 && entry._actualSize) { + stat.size = entry._actualSize; + } + entry._stat = stat; + } + return entry._stat; + } + async content(entry) { + if (entry._content === false) { + const { fs, dir } = this; + if (await entry.type() === "tree") { + entry._content = void 0; + } else { + const content = await fs.read(`${dir}/${entry._fullpath}`); + entry._actualSize = content.length; + if (entry._stat && entry._stat.size === -1) { + entry._stat.size = entry._actualSize; + } + entry._content = new Uint8Array(content); + } + } + return entry._content; + } + async oid(entry) { + if (entry._oid === false) { + const { fs, gitdir, cache } = this; + let oid; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + const stage = index2.entriesMap.get(entry._fullpath); + const stats = await entry.stat(); + if (!stage || compareStats(stats, stage)) { + const content = await entry.content(); + if (content === void 0) { + oid = void 0; + } else { + oid = await shasum(GitObject.wrap({ type: "blob", object: await entry.content() })); + if (stage && oid === stage.oid && stats.mode === stage.mode && compareStats(stats, stage)) { + index2.insert({ + filepath: entry._fullpath, + stats, + oid + }); + } + } + } else { + oid = stage.oid; + } + }); + entry._oid = oid; + } + return entry._oid; + } +}; +function WORKDIR() { + const o = Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, dir, gitdir, cache }) { + return new GitWalkerFs({ fs, dir, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +var GitIgnoreManager = class { + static async isIgnored({ fs, dir, gitdir = join(dir, ".git"), filepath }) { + if (basename(filepath) === ".git") + return true; + if (filepath === ".") + return false; + let excludes = ""; + const excludesFile = join(gitdir, "info", "exclude"); + if (await fs.exists(excludesFile)) { + excludes = await fs.read(excludesFile, "utf8"); + } + const pairs = [ + { + gitignore: join(dir, ".gitignore"), + filepath + } + ]; + const pieces = filepath.split("/").filter(Boolean); + for (let i = 1; i < pieces.length; i++) { + const folder = pieces.slice(0, i).join("/"); + const file = pieces.slice(i).join("/"); + pairs.push({ + gitignore: join(dir, folder, ".gitignore"), + filepath: file + }); + } + let ignoredStatus = false; + for (const p of pairs) { + let file; + try { + file = await fs.read(p.gitignore, "utf8"); + } catch (err) { + if (err.code === "NOENT") + continue; + } + const ign = (0, import_ignore.default)().add(excludes); + ign.add(file); + const parentdir = dirname(p.filepath); + if (parentdir !== "." && ign.ignores(parentdir)) + return true; + if (ignoredStatus) { + ignoredStatus = !ign.test(p.filepath).unignored; + } else { + ignoredStatus = ign.test(p.filepath).ignored; + } + } + return ignoredStatus; + } +}; +async function rmRecursive(fs, filepath) { + const entries = await fs.readdir(filepath); + if (entries == null) { + await fs.rm(filepath); + } else if (entries.length) { + await Promise.all(entries.map((entry) => { + const subpath = join(filepath, entry); + return fs.lstat(subpath).then((stat) => { + if (!stat) + return; + return stat.isDirectory() ? rmRecursive(fs, subpath) : fs.rm(subpath); + }); + })).then(() => fs.rmdir(filepath)); + } else { + await fs.rmdir(filepath); + } +} +var FileSystem = class { + constructor(fs) { + if (typeof fs._original_unwrapped_fs !== "undefined") + return fs; + const promises = Object.getOwnPropertyDescriptor(fs, "promises"); + if (promises && promises.enumerable) { + this._readFile = fs.promises.readFile.bind(fs.promises); + this._writeFile = fs.promises.writeFile.bind(fs.promises); + this._mkdir = fs.promises.mkdir.bind(fs.promises); + if (fs.promises.rm) { + this._rm = fs.promises.rm.bind(fs.promises); + } else if (fs.promises.rmdir.length > 1) { + this._rm = fs.promises.rmdir.bind(fs.promises); + } else { + this._rm = rmRecursive.bind(null, this); + } + this._rmdir = fs.promises.rmdir.bind(fs.promises); + this._unlink = fs.promises.unlink.bind(fs.promises); + this._stat = fs.promises.stat.bind(fs.promises); + this._lstat = fs.promises.lstat.bind(fs.promises); + this._readdir = fs.promises.readdir.bind(fs.promises); + this._readlink = fs.promises.readlink.bind(fs.promises); + this._symlink = fs.promises.symlink.bind(fs.promises); + } else { + this._readFile = (0, import_pify.default)(fs.readFile.bind(fs)); + this._writeFile = (0, import_pify.default)(fs.writeFile.bind(fs)); + this._mkdir = (0, import_pify.default)(fs.mkdir.bind(fs)); + if (fs.rm) { + this._rm = (0, import_pify.default)(fs.rm.bind(fs)); + } else if (fs.rmdir.length > 2) { + this._rm = (0, import_pify.default)(fs.rmdir.bind(fs)); + } else { + this._rm = rmRecursive.bind(null, this); + } + this._rmdir = (0, import_pify.default)(fs.rmdir.bind(fs)); + this._unlink = (0, import_pify.default)(fs.unlink.bind(fs)); + this._stat = (0, import_pify.default)(fs.stat.bind(fs)); + this._lstat = (0, import_pify.default)(fs.lstat.bind(fs)); + this._readdir = (0, import_pify.default)(fs.readdir.bind(fs)); + this._readlink = (0, import_pify.default)(fs.readlink.bind(fs)); + this._symlink = (0, import_pify.default)(fs.symlink.bind(fs)); + } + this._original_unwrapped_fs = fs; + } + async exists(filepath, options = {}) { + try { + await this._stat(filepath); + return true; + } catch (err) { + if (err.code === "ENOENT" || err.code === "ENOTDIR") { + return false; + } else { + console.log('Unhandled error in "FileSystem.exists()" function', err); + throw err; + } + } + } + async read(filepath, options = {}) { + try { + let buffer2 = await this._readFile(filepath, options); + if (typeof buffer2 !== "string") { + buffer2 = Buffer2.from(buffer2); + } + return buffer2; + } catch (err) { + return null; + } + } + async write(filepath, contents, options = {}) { + try { + await this._writeFile(filepath, contents, options); + return; + } catch (err) { + await this.mkdir(dirname(filepath)); + await this._writeFile(filepath, contents, options); + } + } + async mkdir(filepath, _selfCall = false) { + try { + await this._mkdir(filepath); + return; + } catch (err) { + if (err === null) + return; + if (err.code === "EEXIST") + return; + if (_selfCall) + throw err; + if (err.code === "ENOENT") { + const parent = dirname(filepath); + if (parent === "." || parent === "/" || parent === filepath) + throw err; + await this.mkdir(parent); + await this.mkdir(filepath, true); + } + } + } + async rm(filepath) { + try { + await this._unlink(filepath); + } catch (err) { + if (err.code !== "ENOENT") + throw err; + } + } + async rmdir(filepath, opts) { + try { + if (opts && opts.recursive) { + await this._rm(filepath, opts); + } else { + await this._rmdir(filepath); + } + } catch (err) { + if (err.code !== "ENOENT") + throw err; + } + } + async readdir(filepath) { + try { + const names = await this._readdir(filepath); + names.sort(compareStrings); + return names; + } catch (err) { + if (err.code === "ENOTDIR") + return null; + return []; + } + } + async readdirDeep(dir) { + const subdirs = await this._readdir(dir); + const files = await Promise.all(subdirs.map(async (subdir) => { + const res = dir + "/" + subdir; + return (await this._stat(res)).isDirectory() ? this.readdirDeep(res) : res; + })); + return files.reduce((a, f) => a.concat(f), []); + } + async lstat(filename) { + try { + const stats = await this._lstat(filename); + return stats; + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + } + async readlink(filename, opts = { encoding: "buffer" }) { + try { + const link = await this._readlink(filename, opts); + return Buffer2.isBuffer(link) ? link : Buffer2.from(link); + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + } + async writelink(filename, buffer2) { + return this._symlink(buffer2.toString("utf8"), filename); + } +}; +async function writeObjectLoose({ fs, gitdir, object, format, oid }) { + if (format !== "deflated") { + throw new InternalError("GitObjectStoreLoose expects objects to write to be in deflated format"); + } + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const filepath = `${gitdir}/${source}`; + if (!await fs.exists(filepath)) + await fs.write(filepath, object); +} +var supportsCompressionStream = null; +async function deflate(buffer2) { + if (supportsCompressionStream === null) { + supportsCompressionStream = testCompressionStream(); + } + return supportsCompressionStream ? browserDeflate(buffer2) : import_pako.default.deflate(buffer2); +} +async function browserDeflate(buffer2) { + const cs = new CompressionStream("deflate"); + const c = new Blob([buffer2]).stream().pipeThrough(cs); + return new Uint8Array(await new Response(c).arrayBuffer()); +} +function testCompressionStream() { + try { + const cs = new CompressionStream("deflate"); + new Blob([]).stream(); + if (cs) + return true; + } catch (_) { + } + return false; +} +async function _writeObject({ + fs, + gitdir, + type, + object, + format = "content", + oid = void 0, + dryRun = false +}) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = await shasum(object); + object = Buffer2.from(await deflate(object)); + } + if (!dryRun) { + await writeObjectLoose({ fs, gitdir, object, format: "deflated", oid }); + } + return oid; +} +function assertParameter(name, value) { + if (value === void 0) { + throw new MissingParameterError(name); + } +} +function posixifyPathBuffer(buffer2) { + let idx; + while (~(idx = buffer2.indexOf(92))) + buffer2[idx] = 47; + return buffer2; +} +async function add({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {}, + force = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + await GitIndexManager.acquire({ fs, gitdir, cache }, async (index2) => { + return addToIndex({ dir, gitdir, fs, filepath, index: index2, force }); + }); + } catch (err) { + err.caller = "git.add"; + throw err; + } +} +async function addToIndex({ dir, gitdir, fs, filepath, index: index2, force }) { + filepath = Array.isArray(filepath) ? filepath : [filepath]; + const promises = filepath.map(async (currentFilepath) => { + if (!force) { + const ignored = await GitIgnoreManager.isIgnored({ + fs, + dir, + gitdir, + filepath: currentFilepath + }); + if (ignored) + return; + } + const stats = await fs.lstat(join(dir, currentFilepath)); + if (!stats) + throw new NotFoundError(currentFilepath); + if (stats.isDirectory()) { + const children2 = await fs.readdir(join(dir, currentFilepath)); + const promises2 = children2.map((child) => addToIndex({ + dir, + gitdir, + fs, + filepath: [join(currentFilepath, child)], + index: index2, + force + })); + await Promise.all(promises2); + } else { + const object = stats.isSymbolicLink() ? await fs.readlink(join(dir, currentFilepath)).then(posixifyPathBuffer) : await fs.read(join(dir, currentFilepath)); + if (object === null) + throw new NotFoundError(currentFilepath); + const oid = await _writeObject({ fs, gitdir, type: "blob", object }); + index2.insert({ filepath: currentFilepath, stats, oid }); + } + }); + const settledPromises = await Promise.allSettled(promises); + const rejectedPromises = settledPromises.filter((settle) => settle.status === "rejected").map((settle) => settle.reason); + if (rejectedPromises.length > 1) { + throw new MultipleGitError(rejectedPromises); + } + if (rejectedPromises.length === 1) { + throw rejectedPromises[0]; + } + const fulfilledPromises = settledPromises.filter((settle) => settle.status === "fulfilled" && settle.value).map((settle) => settle.value); + return fulfilledPromises; +} +async function _commit({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree +}) { + if (!ref) { + ref = await GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + } + return GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + const inodes = flatFileListToDirectoryStructure(index2.entries); + const inode = inodes.get("."); + if (!tree) { + tree = await constructTree({ fs, gitdir, inode, dryRun }); + } + if (!parent) { + try { + parent = [ + await GitRefManager.resolve({ + fs, + gitdir, + ref + }) + ]; + } catch (err) { + parent = []; + } + } else { + parent = await Promise.all(parent.map((p) => { + return GitRefManager.resolve({ fs, gitdir, ref: p }); + })); + } + let comm = GitCommit.from({ + tree, + parent, + author, + committer, + message + }); + if (signingKey) { + comm = await GitCommit.sign(comm, onSign, signingKey); + } + const oid = await _writeObject({ + fs, + gitdir, + type: "commit", + object: comm.toObject(), + dryRun + }); + if (!noUpdateBranch && !dryRun) { + await GitRefManager.writeRef({ + fs, + gitdir, + ref, + value: oid + }); + } + return oid; + }); +} +async function constructTree({ fs, gitdir, inode, dryRun }) { + const children2 = inode.children; + for (const inode2 of children2) { + if (inode2.type === "tree") { + inode2.metadata.mode = "040000"; + inode2.metadata.oid = await constructTree({ fs, gitdir, inode: inode2, dryRun }); + } + } + const entries = children2.map((inode2) => ({ + mode: inode2.metadata.mode, + path: inode2.basename, + oid: inode2.metadata.oid, + type: inode2.type + })); + const tree = GitTree.from(entries); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object: tree.toObject(), + dryRun + }); + return oid; +} +async function resolveFilepath({ fs, cache, gitdir, oid, filepath }) { + if (filepath.startsWith("/")) { + throw new InvalidFilepathError("leading-slash"); + } else if (filepath.endsWith("/")) { + throw new InvalidFilepathError("trailing-slash"); + } + const _oid = oid; + const result = await resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (filepath === "") { + oid = result.oid; + } else { + const pathArray = filepath.split("/"); + oid = await _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid: _oid, + filepath + }); + } + return oid; +} +async function _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath +}) { + const name = pathArray.shift(); + for (const entry of tree) { + if (entry.path === name) { + if (pathArray.length === 0) { + return entry.oid; + } else { + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "blob", filepath); + } + tree = GitTree.from(object); + return _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath + }); + } + } + } + throw new NotFoundError(`file or directory found at "${oid}:${filepath}"`); +} +async function _readTree({ + fs, + cache, + gitdir, + oid, + filepath = void 0 +}) { + if (filepath !== void 0) { + oid = await resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const { tree, oid: treeOid } = await resolveTree({ fs, cache, gitdir, oid }); + const result = { + oid: treeOid, + tree: tree.entries() + }; + return result; +} +async function _writeTree({ fs, gitdir, tree }) { + const object = GitTree.from(tree).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object, + format: "content" + }); + return oid; +} +async function _addNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey +}) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = await _readTree({ + fs, + cache, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + if (force) { + tree = tree.filter((entry) => entry.path !== oid); + } else { + for (const entry of tree) { + if (entry.path === oid) { + throw new AlreadyExistsError("note", oid); + } + } + } + if (typeof note === "string") { + note = Buffer2.from(note, "utf8"); + } + const noteOid = await _writeObject({ + fs, + gitdir, + type: "blob", + object: note, + format: "content" + }); + tree.push({ mode: "100644", path: oid, oid: noteOid, type: "blob" }); + const treeOid = await _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = await _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note added by 'isomorphic-git addNote' +`, + author, + committer, + signingKey + }); + return commitOid; +} +async function _getConfig({ fs, gitdir, path: path2 }) { + const config = await GitConfigManager.get({ fs, gitdir }); + return config.get(path2); +} +async function normalizeAuthorObject({ fs, gitdir, author = {} }) { + let { name, email, timestamp, timezoneOffset } = author; + name = name || await _getConfig({ fs, gitdir, path: "user.name" }); + email = email || await _getConfig({ fs, gitdir, path: "user.email" }) || ""; + if (name === void 0) { + return void 0; + } + timestamp = timestamp != null ? timestamp : Math.floor(Date.now() / 1e3); + timezoneOffset = timezoneOffset != null ? timezoneOffset : new Date(timestamp * 1e3).getTimezoneOffset(); + return { name, email, timestamp, timezoneOffset }; +} +async function normalizeCommitterObject({ + fs, + gitdir, + author, + committer +}) { + committer = Object.assign({}, committer || author); + if (author) { + committer.timestamp = committer.timestamp || author.timestamp; + committer.timezoneOffset = committer.timezoneOffset || author.timezoneOffset; + } + committer = await normalizeAuthorObject({ fs, gitdir, author: committer }); + return committer; +} +async function addNote({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + note, + force, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("note", note); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _addNote({ + fs: new FileSystem(fs), + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.addNote"; + throw err; + } +} +async function _addRemote({ fs, gitdir, remote, url, force }) { + if (remote !== import_clean_git_ref.default.clean(remote)) { + throw new InvalidRefNameError(remote, import_clean_git_ref.default.clean(remote)); + } + const config = await GitConfigManager.get({ fs, gitdir }); + if (!force) { + const remoteNames = await config.getSubsections("remote"); + if (remoteNames.includes(remote)) { + if (url !== await config.get(`remote.${remote}.url`)) { + throw new AlreadyExistsError("remote", remote); + } + } + } + await config.set(`remote.${remote}.url`, url); + await config.set(`remote.${remote}.fetch`, `+refs/heads/*:refs/remotes/${remote}/*`); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function addRemote({ + fs, + dir, + gitdir = join(dir, ".git"), + remote, + url, + force = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("remote", remote); + assertParameter("url", url); + return await _addRemote({ + fs: new FileSystem(fs), + gitdir, + remote, + url, + force + }); + } catch (err) { + err.caller = "git.addRemote"; + throw err; + } +} +async function _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false +}) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("tag", ref); + } + const oid = await GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + const { type } = await _readObject({ fs, cache, gitdir, oid }); + let tagObject = GitAnnotatedTag.from({ + object: oid, + type, + tag: ref.replace("refs/tags/", ""), + tagger, + message, + gpgsig + }); + if (signingKey) { + tagObject = await GitAnnotatedTag.sign(tagObject, onSign, signingKey); + } + const value = await _writeObject({ + fs, + gitdir, + type: "tag", + object: tagObject.toObject() + }); + await GitRefManager.writeRef({ fs, gitdir, ref, value }); +} +async function annotatedTag({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref, + tagger: _tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const tagger = await normalizeAuthorObject({ fs, gitdir, author: _tagger }); + if (!tagger) + throw new MissingNameError("tagger"); + return await _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message, + gpgsig, + object, + signingKey, + force + }); + } catch (err) { + err.caller = "git.annotatedTag"; + throw err; + } +} +async function _branch({ + fs, + gitdir, + ref, + object, + checkout: checkout2 = false, + force = false +}) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + const fullref = `refs/heads/${ref}`; + if (!force) { + const exist = await GitRefManager.exists({ fs, gitdir, ref: fullref }); + if (exist) { + throw new AlreadyExistsError("branch", ref, false); + } + } + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: object || "HEAD" }); + } catch (e) { + } + if (oid) { + await GitRefManager.writeRef({ fs, gitdir, ref: fullref, value: oid }); + } + if (checkout2) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullref + }); + } +} +async function branch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + checkout: checkout2 = false, + force = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _branch({ + fs: new FileSystem(fs), + gitdir, + ref, + object, + checkout: checkout2, + force + }); + } catch (err) { + err.caller = "git.branch"; + throw err; + } +} +function arrayRange(start, end) { + const length = end - start; + return Array.from({ length }, (_, i) => start + i); +} +var flat = typeof Array.prototype.flat === "undefined" ? (entries) => entries.reduce((acc, x) => acc.concat(x), []) : (entries) => entries.flat(); +var RunningMinimum = class { + constructor() { + this.value = null; + } + consider(value) { + if (value === null || value === void 0) + return; + if (this.value === null) { + this.value = value; + } else if (value < this.value) { + this.value = value; + } + } + reset() { + this.value = null; + } +}; +function* unionOfIterators(sets) { + const min = new RunningMinimum(); + let minimum; + const heads = []; + const numsets = sets.length; + for (let i = 0; i < numsets; i++) { + heads[i] = sets[i].next().value; + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + if (min.value === null) + return; + while (true) { + const result = []; + minimum = min.value; + min.reset(); + for (let i = 0; i < numsets; i++) { + if (heads[i] !== void 0 && heads[i] === minimum) { + result[i] = heads[i]; + heads[i] = sets[i].next().value; + } else { + result[i] = null; + } + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + yield result; + if (min.value === null) + return; + } +} +async function _walk({ + fs, + cache, + dir, + gitdir, + trees, + map = async (_, entry) => entry, + reduce = async (parent, children2) => { + const flatten = flat(children2); + if (parent !== void 0) + flatten.unshift(parent); + return flatten; + }, + iterate = (walk2, children2) => Promise.all([...children2].map(walk2)) +}) { + const walkers = trees.map((proxy) => proxy[GitWalkSymbol]({ fs, dir, gitdir, cache })); + const root = new Array(walkers.length).fill("."); + const range = arrayRange(0, walkers.length); + const unionWalkerFromReaddir = async (entries) => { + range.map((i) => { + entries[i] = entries[i] && new walkers[i].ConstructEntry(entries[i]); + }); + const subdirs = await Promise.all(range.map((i) => entries[i] ? walkers[i].readdir(entries[i]) : [])); + const iterators = subdirs.map((array) => array === null ? [] : array).map((array) => array[Symbol.iterator]()); + return { + entries, + children: unionOfIterators(iterators) + }; + }; + const walk2 = async (root2) => { + const { entries, children: children2 } = await unionWalkerFromReaddir(root2); + const fullpath = entries.find((entry) => entry && entry._fullpath)._fullpath; + const parent = await map(fullpath, entries); + if (parent !== null) { + let walkedChildren = await iterate(walk2, children2); + walkedChildren = walkedChildren.filter((x) => x !== void 0); + return reduce(parent, walkedChildren); + } + }; + return walk2(root); +} +var worthWalking = (filepath, root) => { + if (filepath === "." || root == null || root.length === 0 || root === ".") { + return true; + } + if (root.length >= filepath.length) { + return root.startsWith(filepath); + } else { + return filepath.startsWith(root); + } +}; +async function _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track = true +}) { + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (err) { + if (ref === "HEAD") + throw err; + const remoteRef = `${remote}/${ref}`; + oid = await GitRefManager.resolve({ + fs, + gitdir, + ref: remoteRef + }); + if (track) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.set(`branch.${ref}.remote`, remote); + await config.set(`branch.${ref}.merge`, `refs/heads/${ref}`); + await GitConfigManager.save({ fs, gitdir, config }); + } + await GitRefManager.writeRef({ + fs, + gitdir, + ref: `refs/heads/${ref}`, + value: oid + }); + } + if (!noCheckout) { + let ops; + try { + ops = await analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths + }); + } catch (err) { + if (err instanceof NotFoundError && err.data.what === oid) { + throw new CommitNotFetchedError(ref, oid); + } else { + throw err; + } + } + const conflicts2 = ops.filter(([method]) => method === "conflict").map(([method, fullpath]) => fullpath); + if (conflicts2.length > 0) { + throw new CheckoutConflictError(conflicts2); + } + const errors = ops.filter(([method]) => method === "error").map(([method, fullpath]) => fullpath); + if (errors.length > 0) { + throw new InternalError(errors.join(", ")); + } + if (dryRun) { + return; + } + let count = 0; + const total = ops.length; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + await Promise.all(ops.filter(([method]) => method === "delete" || method === "delete-index").map(async function([method, fullpath]) { + const filepath = `${dir}/${fullpath}`; + if (method === "delete") { + await fs.rm(filepath); + } + index2.delete({ filepath: fullpath }); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + })); + }); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + for (const [method, fullpath] of ops) { + if (method === "rmdir" || method === "rmdir-index") { + const filepath = `${dir}/${fullpath}`; + try { + if (method === "rmdir-index") { + index2.delete({ filepath: fullpath }); + } + await fs.rmdir(filepath); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + if (e.code === "ENOTEMPTY") { + console.log(`Did not delete ${fullpath} because directory is not empty`); + } else { + throw e; + } + } + } + } + }); + await Promise.all(ops.filter(([method]) => method === "mkdir" || method === "mkdir-index").map(async function([_, fullpath]) { + const filepath = `${dir}/${fullpath}`; + await fs.mkdir(filepath); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + })); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + await Promise.all(ops.filter(([method]) => method === "create" || method === "create-index" || method === "update" || method === "mkdir-index").map(async function([method, fullpath, oid2, mode, chmod]) { + const filepath = `${dir}/${fullpath}`; + try { + if (method !== "create-index" && method !== "mkdir-index") { + const { object } = await _readObject({ fs, cache, gitdir, oid: oid2 }); + if (chmod) { + await fs.rm(filepath); + } + if (mode === 33188) { + await fs.write(filepath, object); + } else if (mode === 33261) { + await fs.write(filepath, object, { mode: 511 }); + } else if (mode === 40960) { + await fs.writelink(filepath, object); + } else { + throw new InternalError(`Invalid mode 0o${mode.toString(8)} detected in blob ${oid2}`); + } + } + const stats = await fs.lstat(filepath); + if (mode === 33261) { + stats.mode = 493; + } + if (method === "mkdir-index") { + stats.mode = 57344; + } + index2.insert({ + filepath: fullpath, + stats, + oid: oid2 + }); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + console.log(e); + } + })); + }); + } + if (!noUpdateHead) { + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + if (fullRef.startsWith("refs/heads")) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullRef + }); + } else { + await GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value: oid }); + } + } +} +async function analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths +}) { + let count = 0; + return _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: async function(fullpath, [commit2, workdir, stage]) { + if (fullpath === ".") + return; + if (filepaths && !filepaths.some((base) => worthWalking(fullpath, base))) { + return null; + } + if (onProgress) { + await onProgress({ phase: "Analyzing workdir", loaded: ++count }); + } + const key2 = [!!stage, !!commit2, !!workdir].map(Number).join(""); + switch (key2) { + case "000": + return; + case "001": + if (force && filepaths && filepaths.includes(fullpath)) { + return ["delete", fullpath]; + } + return; + case "010": { + switch (await commit2.type()) { + case "tree": { + return ["mkdir", fullpath]; + } + case "blob": { + return [ + "create", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + case "commit": { + return [ + "mkdir-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + default: { + return [ + "error", + `new entry Unhandled type ${await commit2.type()}` + ]; + } + } + } + case "011": { + switch (`${await commit2.type()}-${await workdir.type()}`) { + case "tree-tree": { + return; + } + case "tree-blob": + case "blob-tree": { + return ["conflict", fullpath]; + } + case "blob-blob": { + if (await commit2.oid() !== await workdir.oid()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await workdir.mode() + ]; + } else { + return ["conflict", fullpath]; + } + } else { + if (await commit2.mode() !== await workdir.mode()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + true + ]; + } else { + return ["conflict", fullpath]; + } + } else { + return [ + "create-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + } + } + case "commit-tree": { + return; + } + case "commit-blob": { + return ["conflict", fullpath]; + } + default: { + return ["error", `new entry Unhandled type ${commit2.type}`]; + } + } + } + case "100": { + return ["delete-index", fullpath]; + } + case "101": { + switch (await stage.type()) { + case "tree": { + return ["rmdir", fullpath]; + } + case "blob": { + if (await stage.oid() !== await workdir.oid()) { + if (force) { + return ["delete", fullpath]; + } else { + return ["conflict", fullpath]; + } + } else { + return ["delete", fullpath]; + } + } + case "commit": { + return ["rmdir-index", fullpath]; + } + default: { + return [ + "error", + `delete entry Unhandled type ${await stage.type()}` + ]; + } + } + } + case "110": + case "111": { + switch (`${await stage.type()}-${await commit2.type()}`) { + case "tree-tree": { + return; + } + case "blob-blob": { + if (await stage.oid() === await commit2.oid() && await stage.mode() === await commit2.mode() && !force) { + return; + } + if (workdir) { + if (await workdir.oid() !== await stage.oid() && await workdir.oid() !== await commit2.oid()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await workdir.mode() + ]; + } else { + return ["conflict", fullpath]; + } + } + } else if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await stage.mode() + ]; + } + if (await commit2.mode() !== await stage.mode()) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + true + ]; + } + if (await commit2.oid() !== await stage.oid()) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + false + ]; + } else { + return; + } + } + case "tree-blob": { + return ["update-dir-to-blob", fullpath, await commit2.oid()]; + } + case "blob-tree": { + return ["update-blob-to-tree", fullpath]; + } + case "commit-commit": { + return [ + "mkdir-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + default: { + return [ + "error", + `update entry Unhandled type ${await stage.type()}-${await commit2.type()}` + ]; + } + } + } + } + }, + reduce: async function(parent, children2) { + children2 = flat(children2); + if (!parent) { + return children2; + } else if (parent && parent[0] === "rmdir") { + children2.push(parent); + return children2; + } else { + children2.unshift(parent); + return children2; + } + } + }); +} +async function checkout({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + remote = "origin", + ref: _ref, + filepaths, + noCheckout = false, + noUpdateHead = _ref === void 0, + dryRun = false, + force = false, + track = true, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + const ref = _ref || "HEAD"; + return await _checkout({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track + }); + } catch (err) { + err.caller = "git.checkout"; + throw err; + } +} +var abbreviateRx = new RegExp("^refs/(heads/|tags/|remotes/)?(.*)"); +function abbreviateRef(ref) { + const match = abbreviateRx.exec(ref); + if (match) { + if (match[1] === "remotes/" && ref.endsWith("/HEAD")) { + return match[2].slice(0, -5); + } else { + return match[2]; + } + } + return ref; +} +async function _currentBranch({ + fs, + gitdir, + fullname = false, + test = false +}) { + const ref = await GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + if (test) { + try { + await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (_) { + return; + } + } + if (!ref.startsWith("refs/")) + return; + return fullname ? ref : abbreviateRef(ref); +} +function translateSSHtoHTTP(url) { + url = url.replace(/^git@([^:]+):/, "https://$1/"); + url = url.replace(/^ssh:\/\//, "https://"); + return url; +} +function calculateBasicAuthHeader({ username = "", password = "" }) { + return `Basic ${Buffer2.from(`${username}:${password}`).toString("base64")}`; +} +async function forAwait(iterable, cb) { + const iter = getIterator(iterable); + while (true) { + const { value, done } = await iter.next(); + if (value) + await cb(value); + if (done) + break; + } + if (iter.return) + iter.return(); +} +async function collect(iterable) { + let size = 0; + const buffers = []; + await forAwait(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; +} +function extractAuthFromUrl(url) { + let userpass = url.match(/^https?:\/\/([^/]+)@/); + if (userpass == null) + return { url, auth: {} }; + userpass = userpass[1]; + const [username, password] = userpass.split(":"); + url = url.replace(`${userpass}@`, ""); + return { url, auth: { username, password } }; +} +function padHex(b, n) { + const s = n.toString(16); + return "0".repeat(b - s.length) + s; +} +var GitPktLine = class { + static flush() { + return Buffer2.from("0000", "utf8"); + } + static delim() { + return Buffer2.from("0001", "utf8"); + } + static encode(line) { + if (typeof line === "string") { + line = Buffer2.from(line); + } + const length = line.length + 4; + const hexlength = padHex(4, length); + return Buffer2.concat([Buffer2.from(hexlength, "utf8"), line]); + } + static streamReader(stream) { + const reader = new StreamReader(stream); + return async function read() { + try { + let length = await reader.read(4); + if (length == null) + return true; + length = parseInt(length.toString("utf8"), 16); + if (length === 0) + return null; + if (length === 1) + return null; + const buffer2 = await reader.read(length - 4); + if (buffer2 == null) + return true; + return buffer2; + } catch (err) { + console.log("error", err); + return true; + } + }; + } +}; +async function parseCapabilitiesV2(read) { + const capabilities2 = {}; + let line; + while (true) { + line = await read(); + if (line === true) + break; + if (line === null) + continue; + line = line.toString("utf8").replace(/\n$/, ""); + const i = line.indexOf("="); + if (i > -1) { + const key2 = line.slice(0, i); + const value = line.slice(i + 1); + capabilities2[key2] = value; + } else { + capabilities2[line] = true; + } + } + return { protocolVersion: 2, capabilities2 }; +} +async function parseRefsAdResponse(stream, { service }) { + const capabilities = new Set(); + const refs = new Map(); + const symrefs = new Map(); + const read = GitPktLine.streamReader(stream); + let lineOne = await read(); + while (lineOne === null) + lineOne = await read(); + if (lineOne === true) + throw new EmptyServerResponseError(); + if (lineOne.includes("version 2")) { + return parseCapabilitiesV2(read); + } + if (lineOne.toString("utf8").replace(/\n$/, "") !== `# service=${service}`) { + throw new ParseError(`# service=${service}\\n`, lineOne.toString("utf8")); + } + let lineTwo = await read(); + while (lineTwo === null) + lineTwo = await read(); + if (lineTwo === true) + return { capabilities, refs, symrefs }; + lineTwo = lineTwo.toString("utf8"); + if (lineTwo.includes("version 2")) { + return parseCapabilitiesV2(read); + } + const [firstRef, capabilitiesLine] = splitAndAssert(lineTwo, "\0", "\\x00"); + capabilitiesLine.split(" ").map((x) => capabilities.add(x)); + const [ref, name] = splitAndAssert(firstRef, " ", " "); + refs.set(name, ref); + while (true) { + const line = await read(); + if (line === true) + break; + if (line !== null) { + const [ref2, name2] = splitAndAssert(line.toString("utf8"), " ", " "); + refs.set(name2, ref2); + } + } + for (const cap of capabilities) { + if (cap.startsWith("symref=")) { + const m = cap.match(/symref=([^:]+):(.*)/); + if (m.length === 3) { + symrefs.set(m[1], m[2]); + } + } + } + return { protocolVersion: 1, capabilities, refs, symrefs }; +} +function splitAndAssert(line, sep2, expected) { + const split = line.trim().split(sep2); + if (split.length !== 2) { + throw new ParseError(`Two strings separated by '${expected}'`, line.toString("utf8")); + } + return split; +} +var corsProxify = (corsProxy, url) => corsProxy.endsWith("?") ? `${corsProxy}${url}` : `${corsProxy}/${url.replace(/^https?:\/\//, "")}`; +var updateHeaders = (headers, auth) => { + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (auth.headers) { + Object.assign(headers, auth.headers); + } +}; +var stringifyBody = async (res) => { + try { + const data = Buffer2.from(await collect(res.body)); + const response = data.toString("utf8"); + const preview = response.length < 256 ? response : response.slice(0, 256) + "..."; + return { preview, response, data }; + } catch (e) { + return {}; + } +}; +var GitRemoteHTTP = class { + static async capabilities() { + return ["discover", "connect"]; + } + static async discover({ + http, + onProgress, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service, + url: _origUrl, + headers, + protocolVersion + }) { + let { url, auth } = extractAuthFromUrl(_origUrl); + const proxifiedURL = corsProxy ? corsProxify(corsProxy, url) : url; + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (protocolVersion === 2) { + headers["Git-Protocol"] = "version=2"; + } + let res; + let tryAgain; + let providedAuthBefore = false; + do { + res = await http.request({ + onProgress, + method: "GET", + url: `${proxifiedURL}/info/refs?service=${service}`, + headers + }); + tryAgain = false; + if (res.statusCode === 401 || res.statusCode === 203) { + const getAuth = providedAuthBefore ? onAuthFailure : onAuth; + if (getAuth) { + auth = await getAuth(url, { + ...auth, + headers: { ...headers } + }); + if (auth && auth.cancel) { + throw new UserCanceledError(); + } else if (auth) { + updateHeaders(headers, auth); + providedAuthBefore = true; + tryAgain = true; + } + } + } else if (res.statusCode === 200 && providedAuthBefore && onAuthSuccess) { + await onAuthSuccess(url, auth); + } + } while (tryAgain); + if (res.statusCode !== 200) { + const { response } = await stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + if (res.headers["content-type"] === `application/x-${service}-advertisement`) { + const remoteHTTP = await parseRefsAdResponse(res.body, { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } else { + const { preview, response, data } = await stringifyBody(res); + try { + const remoteHTTP = await parseRefsAdResponse([data], { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } catch (e) { + throw new SmartHttpError(preview, response); + } + } + } + static async connect({ + http, + onProgress, + corsProxy, + service, + url, + auth, + body, + headers + }) { + const urlAuth = extractAuthFromUrl(url); + if (urlAuth) + url = urlAuth.url; + if (corsProxy) + url = corsProxify(corsProxy, url); + headers["content-type"] = `application/x-${service}-request`; + headers.accept = `application/x-${service}-result`; + updateHeaders(headers, auth); + const res = await http.request({ + onProgress, + method: "POST", + url: `${url}/${service}`, + body, + headers + }); + if (res.statusCode !== 200) { + const { response } = stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + return res; + } +}; +function parseRemoteUrl({ url }) { + if (url.startsWith("git@")) { + return { + transport: "ssh", + address: url + }; + } + const matches = url.match(/(\w+)(:\/\/|::)(.*)/); + if (matches === null) + return; + if (matches[2] === "://") { + return { + transport: matches[1], + address: matches[0] + }; + } + if (matches[2] === "::") { + return { + transport: matches[1], + address: matches[3] + }; + } +} +var GitRemoteManager = class { + static getRemoteHelperFor({ url }) { + const remoteHelpers = new Map(); + remoteHelpers.set("http", GitRemoteHTTP); + remoteHelpers.set("https", GitRemoteHTTP); + const parts = parseRemoteUrl({ url }); + if (!parts) { + throw new UrlParseError(url); + } + if (remoteHelpers.has(parts.transport)) { + return remoteHelpers.get(parts.transport); + } + throw new UnknownTransportError(url, parts.transport, parts.transport === "ssh" ? translateSSHtoHTTP(url) : void 0); + } +}; +var lock$1 = null; +var GitShallowManager = class { + static async read({ fs, gitdir }) { + if (lock$1 === null) + lock$1 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + const oids = new Set(); + await lock$1.acquire(filepath, async function() { + const text2 = await fs.read(filepath, { encoding: "utf8" }); + if (text2 === null) + return oids; + if (text2.trim() === "") + return oids; + text2.trim().split("\n").map((oid) => oids.add(oid)); + }); + return oids; + } + static async write({ fs, gitdir, oids }) { + if (lock$1 === null) + lock$1 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + if (oids.size > 0) { + const text2 = [...oids].join("\n") + "\n"; + await lock$1.acquire(filepath, async function() { + await fs.write(filepath, text2, { + encoding: "utf8" + }); + }); + } else { + await lock$1.acquire(filepath, async function() { + await fs.rm(filepath); + }); + } + } +}; +async function hasObjectLoose({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + return fs.exists(`${gitdir}/${source}`); +} +async function hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta +}) { + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + if (p.offsets.has(oid)) { + return true; + } + } + return false; +} +async function hasObject({ + fs, + cache, + gitdir, + oid, + format = "content" +}) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result = await hasObjectLoose({ fs, gitdir, oid }); + if (!result) { + result = await hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + return result; +} +function emptyPackfile(pack) { + const pheader = "5041434b"; + const version2 = "00000002"; + const obCount = "00000000"; + const header = pheader + version2 + obCount; + return pack.slice(0, 12).toString("hex") === header; +} +function filterCapabilities(server, client) { + const serverNames = server.map((cap) => cap.split("=", 1)[0]); + return client.filter((cap) => { + const name = cap.split("=", 1)[0]; + return serverNames.includes(name); + }); +} +var pkg = { + name: "isomorphic-git", + version: "1.21.0", + agent: "git/isomorphic-git@1.21.0" +}; +var FIFO = class { + constructor() { + this._queue = []; + } + write(chunk) { + if (this._ended) { + throw Error("You cannot write to a FIFO that has already been ended!"); + } + if (this._waiting) { + const resolve = this._waiting; + this._waiting = null; + resolve({ value: chunk }); + } else { + this._queue.push(chunk); + } + } + end() { + this._ended = true; + if (this._waiting) { + const resolve = this._waiting; + this._waiting = null; + resolve({ done: true }); + } + } + destroy(err) { + this._ended = true; + this.error = err; + } + async next() { + if (this._queue.length > 0) { + return { value: this._queue.shift() }; + } + if (this._ended) { + return { done: true }; + } + if (this._waiting) { + throw Error("You cannot call read until the previous call to read has returned!"); + } + return new Promise((resolve) => { + this._waiting = resolve; + }); + } +}; +function findSplit(str) { + const r = str.indexOf("\r"); + const n = str.indexOf("\n"); + if (r === -1 && n === -1) + return -1; + if (r === -1) + return n + 1; + if (n === -1) + return r + 1; + if (n === r + 1) + return n + 1; + return Math.min(r, n) + 1; +} +function splitLines(input) { + const output = new FIFO(); + let tmp = ""; + (async () => { + await forAwait(input, (chunk) => { + chunk = chunk.toString("utf8"); + tmp += chunk; + while (true) { + const i = findSplit(tmp); + if (i === -1) + break; + output.write(tmp.slice(0, i)); + tmp = tmp.slice(i); + } + }); + if (tmp.length > 0) { + output.write(tmp); + } + output.end(); + })(); + return output; +} +var GitSideBand = class { + static demux(input) { + const read = GitPktLine.streamReader(input); + const packetlines = new FIFO(); + const packfile = new FIFO(); + const progress = new FIFO(); + const nextBit = async function() { + const line = await read(); + if (line === null) + return nextBit(); + if (line === true) { + packetlines.end(); + progress.end(); + packfile.end(); + return; + } + switch (line[0]) { + case 1: { + packfile.write(line.slice(1)); + break; + } + case 2: { + progress.write(line.slice(1)); + break; + } + case 3: { + const error = line.slice(1); + progress.write(error); + packfile.destroy(new Error(error.toString("utf8"))); + return; + } + default: { + packetlines.write(line.slice(0)); + } + } + nextBit(); + }; + nextBit(); + return { + packetlines, + packfile, + progress + }; + } +}; +async function parseUploadPackResponse(stream) { + const { packetlines, packfile, progress } = GitSideBand.demux(stream); + const shallows = []; + const unshallows = []; + const acks = []; + let nak = false; + let done = false; + return new Promise((resolve, reject) => { + forAwait(packetlines, (data) => { + const line = data.toString("utf8").trim(); + if (line.startsWith("shallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + shallows.push(oid); + } else if (line.startsWith("unshallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + unshallows.push(oid); + } else if (line.startsWith("ACK")) { + const [, oid, status2] = line.split(" "); + acks.push({ oid, status: status2 }); + if (!status2) + done = true; + } else if (line.startsWith("NAK")) { + nak = true; + done = true; + } + if (done) { + resolve({ shallows, unshallows, acks, nak, packfile, progress }); + } + }); + }); +} +function writeUploadPackRequest({ + capabilities = [], + wants = [], + haves = [], + shallows = [], + depth = null, + since = null, + exclude = [] +}) { + const packstream = []; + wants = [...new Set(wants)]; + let firstLineCapabilities = ` ${capabilities.join(" ")}`; + for (const oid of wants) { + packstream.push(GitPktLine.encode(`want ${oid}${firstLineCapabilities} +`)); + firstLineCapabilities = ""; + } + for (const oid of shallows) { + packstream.push(GitPktLine.encode(`shallow ${oid} +`)); + } + if (depth !== null) { + packstream.push(GitPktLine.encode(`deepen ${depth} +`)); + } + if (since !== null) { + packstream.push(GitPktLine.encode(`deepen-since ${Math.floor(since.valueOf() / 1e3)} +`)); + } + for (const oid of exclude) { + packstream.push(GitPktLine.encode(`deepen-not ${oid} +`)); + } + packstream.push(GitPktLine.flush()); + for (const oid of haves) { + packstream.push(GitPktLine.encode(`have ${oid} +`)); + } + packstream.push(GitPktLine.encode(`done +`)); + return packstream; +} +async function _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote: _remote, + url: _url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false +}) { + const ref = _ref || await _currentBranch({ fs, gitdir, test: true }); + const config = await GitConfigManager.get({ fs, gitdir }); + const remote = _remote || ref && await config.get(`branch.${ref}.remote`) || "origin"; + const url = _url || await config.get(`remote.${remote}.url`); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || ref && await config.get(`branch.${ref}.merge`) || _ref || "HEAD"; + if (corsProxy === void 0) { + corsProxy = await config.get("http.corsProxy"); + } + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remoteHTTP = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = remoteHTTP.auth; + const remoteRefs = remoteHTTP.refs; + if (remoteRefs.size === 0) { + return { + defaultBranch: null, + fetchHead: null, + fetchHeadDescription: null + }; + } + if (depth !== null && !remoteHTTP.capabilities.has("shallow")) { + throw new RemoteCapabilityError("shallow", "depth"); + } + if (since !== null && !remoteHTTP.capabilities.has("deepen-since")) { + throw new RemoteCapabilityError("deepen-since", "since"); + } + if (exclude.length > 0 && !remoteHTTP.capabilities.has("deepen-not")) { + throw new RemoteCapabilityError("deepen-not", "exclude"); + } + if (relative === true && !remoteHTTP.capabilities.has("deepen-relative")) { + throw new RemoteCapabilityError("deepen-relative", "relative"); + } + const { oid, fullref } = GitRefManager.resolveAgainstMap({ + ref: remoteRef, + map: remoteRefs + }); + for (const remoteRef2 of remoteRefs.keys()) { + if (remoteRef2 === fullref || remoteRef2 === "HEAD" || remoteRef2.startsWith("refs/heads/") || tags && remoteRef2.startsWith("refs/tags/")) { + continue; + } + remoteRefs.delete(remoteRef2); + } + const capabilities = filterCapabilities([...remoteHTTP.capabilities], [ + "multi_ack_detailed", + "no-done", + "side-band-64k", + "ofs-delta", + `agent=${pkg.agent}` + ]); + if (relative) + capabilities.push("deepen-relative"); + const wants = singleBranch ? [oid] : remoteRefs.values(); + const haveRefs = singleBranch ? [ref] : await GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs` + }); + let haves = []; + for (let ref2 of haveRefs) { + try { + ref2 = await GitRefManager.expand({ fs, gitdir, ref: ref2 }); + const oid2 = await GitRefManager.resolve({ fs, gitdir, ref: ref2 }); + if (await hasObject({ fs, cache, gitdir, oid: oid2 })) { + haves.push(oid2); + } + } catch (err) { + } + } + haves = [...new Set(haves)]; + const oids = await GitShallowManager.read({ fs, gitdir }); + const shallows = remoteHTTP.capabilities.has("shallow") ? [...oids] : []; + const packstream = writeUploadPackRequest({ + capabilities, + wants, + haves, + shallows, + depth, + since, + exclude + }); + const packbuffer = Buffer2.from(await collect(packstream)); + const raw = await GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-upload-pack", + url, + auth, + body: [packbuffer], + headers + }); + const response = await parseUploadPackResponse(raw.body); + if (raw.headers) { + response.headers = raw.headers; + } + for (const oid2 of response.shallows) { + if (!oids.has(oid2)) { + try { + const { object } = await _readObject({ fs, cache, gitdir, oid: oid2 }); + const commit2 = new GitCommit(object); + const hasParents = await Promise.all(commit2.headers().parent.map((oid3) => hasObject({ fs, cache, gitdir, oid: oid3 }))); + const haveAllParents = hasParents.length === 0 || hasParents.every((has) => has); + if (!haveAllParents) { + oids.add(oid2); + } + } catch (err) { + oids.add(oid2); + } + } + } + for (const oid2 of response.unshallows) { + oids.delete(oid2); + } + await GitShallowManager.write({ fs, gitdir, oids }); + if (singleBranch) { + const refs = new Map([[fullref, oid]]); + const symrefs = new Map(); + let bail = 10; + let key2 = fullref; + while (bail--) { + const value = remoteHTTP.symrefs.get(key2); + if (value === void 0) + break; + symrefs.set(key2, value); + key2 = value; + } + const realRef = remoteRefs.get(key2); + if (realRef) { + refs.set(key2, realRef); + } + const { pruned } = await GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + prune + }); + if (prune) { + response.pruned = pruned; + } + } else { + const { pruned } = await GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs: remoteRefs, + symrefs: remoteHTTP.symrefs, + tags, + prune, + pruneTags + }); + if (prune) { + response.pruned = pruned; + } + } + response.HEAD = remoteHTTP.symrefs.get("HEAD"); + if (response.HEAD === void 0) { + const { oid: oid2 } = GitRefManager.resolveAgainstMap({ + ref: "HEAD", + map: remoteRefs + }); + for (const [key2, value] of remoteRefs.entries()) { + if (key2 !== "HEAD" && value === oid2) { + response.HEAD = key2; + break; + } + } + } + const noun = fullref.startsWith("refs/tags") ? "tag" : "branch"; + response.FETCH_HEAD = { + oid, + description: `${noun} '${abbreviateRef(fullref)}' of ${url}` + }; + if (onProgress || onMessage) { + const lines = splitLines(response.progress); + forAwait(lines, async (line) => { + if (onMessage) + await onMessage(line); + if (onProgress) { + const matches = line.match(/([^:]*).*\((\d+?)\/(\d+?)\)/); + if (matches) { + await onProgress({ + phase: matches[1].trim(), + loaded: parseInt(matches[2], 10), + total: parseInt(matches[3], 10) + }); + } + } + }); + } + const packfile = Buffer2.from(await collect(response.packfile)); + const packfileSha = packfile.slice(-20).toString("hex"); + const res = { + defaultBranch: response.HEAD, + fetchHead: response.FETCH_HEAD.oid, + fetchHeadDescription: response.FETCH_HEAD.description + }; + if (response.headers) { + res.headers = response.headers; + } + if (prune) { + res.pruned = response.pruned; + } + if (packfileSha !== "" && !emptyPackfile(packfile)) { + res.packfile = `objects/pack/pack-${packfileSha}.pack`; + const fullpath = join(gitdir, res.packfile); + await fs.write(fullpath, packfile); + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + const idx = await GitPackIndex.fromPack({ + pack: packfile, + getExternalRefDelta, + onProgress + }); + await fs.write(fullpath.replace(/\.pack$/, ".idx"), await idx.toBuffer()); + } + return res; +} +async function _init({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" +}) { + if (await fs.exists(gitdir + "/config")) + return; + let folders = [ + "hooks", + "info", + "objects/info", + "objects/pack", + "refs/heads", + "refs/tags" + ]; + folders = folders.map((dir2) => gitdir + "/" + dir2); + for (const folder of folders) { + await fs.mkdir(folder); + } + await fs.write(gitdir + "/config", `[core] + repositoryformatversion = 0 + filemode = false + bare = ${bare} +` + (bare ? "" : " logallrefupdates = true\n") + " symlinks = false\n ignorecase = true\n"); + await fs.write(gitdir + "/HEAD", `ref: refs/heads/${defaultBranch} +`); +} +async function _clone({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative, + singleBranch, + noCheckout, + noTags, + headers +}) { + try { + await _init({ fs, gitdir }); + await _addRemote({ fs, gitdir, remote, url, force: false }); + if (corsProxy) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.set(`http.corsProxy`, corsProxy); + await GitConfigManager.save({ fs, gitdir, config }); + } + const { defaultBranch, fetchHead } = await _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + corsProxy, + depth, + since, + exclude, + relative, + singleBranch, + headers, + tags: !noTags + }); + if (fetchHead === null) + return; + ref = ref || defaultBranch; + ref = ref.replace("refs/heads/", ""); + await _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout + }); + } catch (err) { + await fs.rmdir(gitdir, { recursive: true, maxRetries: 10 }).catch(() => void 0); + throw err; + } +} +async function clone({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + url, + corsProxy = void 0, + ref = void 0, + remote = "origin", + depth = void 0, + since = void 0, + exclude = [], + relative = false, + singleBranch = false, + noCheckout = false, + noTags = false, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + if (!noCheckout) { + assertParameter("dir", dir); + } + assertParameter("url", url); + return await _clone({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative, + singleBranch, + noCheckout, + noTags, + headers + }); + } catch (err) { + err.caller = "git.clone"; + throw err; + } +} +async function commit({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + message, + author: _author, + committer: _committer, + signingKey, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("message", message); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _commit({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + dryRun, + noUpdateBranch, + ref, + parent, + tree + }); + } catch (err) { + err.caller = "git.commit"; + throw err; + } +} +async function currentBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + fullname = false, + test = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _currentBranch({ + fs: new FileSystem(fs), + gitdir, + fullname, + test + }); + } catch (err) { + err.caller = "git.currentBranch"; + throw err; + } +} +async function _deleteBranch({ fs, gitdir, ref }) { + const exist = await GitRefManager.exists({ fs, gitdir, ref }); + if (!exist) { + throw new NotFoundError(ref); + } + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + const currentRef = await _currentBranch({ fs, gitdir, fullname: true }); + if (fullRef === currentRef) { + const value = await GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + await GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value }); + } + await GitRefManager.deleteRef({ fs, gitdir, ref: fullRef }); +} +async function deleteBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref +}) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return await _deleteBranch({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteBranch"; + throw err; + } +} +async function deleteRef({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + await GitRefManager.deleteRef({ fs: new FileSystem(fs), gitdir, ref }); + } catch (err) { + err.caller = "git.deleteRef"; + throw err; + } +} +async function _deleteRemote({ fs, gitdir, remote }) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.deleteSection("remote", remote); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function deleteRemote({ + fs, + dir, + gitdir = join(dir, ".git"), + remote +}) { + try { + assertParameter("fs", fs); + assertParameter("remote", remote); + return await _deleteRemote({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.deleteRemote"; + throw err; + } +} +async function _deleteTag({ fs, gitdir, ref }) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + await GitRefManager.deleteRef({ fs, gitdir, ref }); +} +async function deleteTag({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return await _deleteTag({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteTag"; + throw err; + } +} +async function expandOidLoose({ fs, gitdir, oid: short }) { + const prefix = short.slice(0, 2); + const objectsSuffixes = await fs.readdir(`${gitdir}/objects/${prefix}`); + return objectsSuffixes.map((suffix) => `${prefix}${suffix}`).filter((_oid) => _oid.startsWith(short)); +} +async function expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta +}) { + const results = []; + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + for (const oid of p.offsets.keys()) { + if (oid.startsWith(short)) + results.push(oid); + } + } + return results; +} +async function _expandOid({ fs, cache, gitdir, oid: short }) { + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const results1 = await expandOidLoose({ fs, gitdir, oid: short }); + const results2 = await expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta + }); + const results = results1.concat(results2); + if (results.length === 1) { + return results[0]; + } + if (results.length > 1) { + throw new AmbiguousError("oids", short, results); + } + throw new NotFoundError(`an object matching "${short}"`); +} +async function expandOid({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _expandOid({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.expandOid"; + throw err; + } +} +async function expandRef({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await GitRefManager.expand({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.expandRef"; + throw err; + } +} +async function _findMergeBase({ fs, cache, gitdir, oids }) { + const visits = {}; + const passes = oids.length; + let heads = oids.map((oid, index2) => ({ index: index2, oid })); + while (heads.length) { + const result = new Set(); + for (const { oid, index: index2 } of heads) { + if (!visits[oid]) + visits[oid] = new Set(); + visits[oid].add(index2); + if (visits[oid].size === passes) { + result.add(oid); + } + } + if (result.size > 0) { + return [...result]; + } + const newheads = new Map(); + for (const { oid, index: index2 } of heads) { + try { + const { object } = await _readObject({ fs, cache, gitdir, oid }); + const commit2 = GitCommit.from(object); + const { parent } = commit2.parseHeaders(); + for (const oid2 of parent) { + if (!visits[oid2] || !visits[oid2].has(index2)) { + newheads.set(oid2 + ":" + index2, { oid: oid2, index: index2 }); + } + } + } catch (err) { + } + } + heads = Array.from(newheads.values()); + } + return []; +} +var LINEBREAKS = /^.*(\r?\n|$)/gm; +function mergeFile({ branches, contents }) { + const ourName = branches[1]; + const theirName = branches[2]; + const baseContent = contents[0]; + const ourContent = contents[1]; + const theirContent = contents[2]; + const ours = ourContent.match(LINEBREAKS); + const base = baseContent.match(LINEBREAKS); + const theirs = theirContent.match(LINEBREAKS); + const result = (0, import_diff3.default)(ours, base, theirs); + const markerSize = 7; + let mergedText = ""; + let cleanMerge = true; + for (const item of result) { + if (item.ok) { + mergedText += item.ok.join(""); + } + if (item.conflict) { + cleanMerge = false; + mergedText += `${"<".repeat(markerSize)} ${ourName} +`; + mergedText += item.conflict.a.join(""); + mergedText += `${"=".repeat(markerSize)} +`; + mergedText += item.conflict.b.join(""); + mergedText += `${">".repeat(markerSize)} ${theirName} +`; + } + } + return { cleanMerge, mergedText }; +} +async function mergeTree({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + ourOid, + baseOid, + theirOid, + ourName = "ours", + baseName = "base", + theirName = "theirs", + dryRun = false, + abortOnConflict = true, + mergeDriver +}) { + const ourTree = TREE({ ref: ourOid }); + const baseTree = TREE({ ref: baseOid }); + const theirTree = TREE({ ref: theirOid }); + const unmergedFiles = []; + let cleanMerge = true; + const results = await _walk({ + fs, + cache, + dir, + gitdir, + trees: [ourTree, baseTree, theirTree], + map: async function(filepath, [ours, base, theirs]) { + const path2 = basename(filepath); + const ourChange = await modified(ours, base); + const theirChange = await modified(theirs, base); + switch (`${ourChange}-${theirChange}`) { + case "false-false": { + return { + mode: await base.mode(), + path: path2, + oid: await base.oid(), + type: await base.type() + }; + } + case "false-true": { + return theirs ? { + mode: await theirs.mode(), + path: path2, + oid: await theirs.oid(), + type: await theirs.type() + } : void 0; + } + case "true-false": { + return ours ? { + mode: await ours.mode(), + path: path2, + oid: await ours.oid(), + type: await ours.type() + } : void 0; + } + case "true-true": { + if (ours && base && theirs && await ours.type() === "blob" && await base.type() === "blob" && await theirs.type() === "blob") { + return mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + baseName, + theirName, + mergeDriver + }).then((r) => { + cleanMerge = cleanMerge && r.cleanMerge; + unmergedFiles.push(filepath); + return r.mergeResult; + }); + } + throw new MergeNotSupportedError(); + } + } + }, + reduce: async (parent, children2) => { + const entries = children2.filter(Boolean); + if (!parent) + return; + if (parent && parent.type === "tree" && entries.length === 0) + return; + if (entries.length > 0) { + const tree = new GitTree(entries); + const object = tree.toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object, + dryRun + }); + parent.oid = oid; + } + return parent; + } + }); + if (!cleanMerge) { + if (dir && !abortOnConflict) { + await _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref: results.oid })], + map: async function(filepath, [entry]) { + const path2 = `${dir}/${filepath}`; + if (await entry.type() === "blob") { + const mode = await entry.mode(); + const content = new TextDecoder().decode(await entry.content()); + await fs.write(path2, content, { mode }); + } + return true; + } + }); + } + throw new MergeConflictError(unmergedFiles); + } + return results.oid; +} +async function modified(entry, base) { + if (!entry && !base) + return false; + if (entry && !base) + return true; + if (!entry && base) + return true; + if (await entry.type() === "tree" && await base.type() === "tree") { + return false; + } + if (await entry.type() === await base.type() && await entry.mode() === await base.mode() && await entry.oid() === await base.oid()) { + return false; + } + return true; +} +async function mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + theirName, + baseName, + dryRun, + mergeDriver = mergeFile +}) { + const type = "blob"; + const mode = await base.mode() === await ours.mode() ? await theirs.mode() : await ours.mode(); + if (await ours.oid() === await theirs.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await ours.oid(), type } + }; + } + if (await ours.oid() === await base.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await theirs.oid(), type } + }; + } + if (await theirs.oid() === await base.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await ours.oid(), type } + }; + } + const ourContent = Buffer2.from(await ours.content()).toString("utf8"); + const baseContent = Buffer2.from(await base.content()).toString("utf8"); + const theirContent = Buffer2.from(await theirs.content()).toString("utf8"); + const { mergedText, cleanMerge } = await mergeDriver({ + branches: [baseName, ourName, theirName], + contents: [baseContent, ourContent, theirContent], + path: path2 + }); + const oid = await _writeObject({ + fs, + gitdir, + type: "blob", + object: Buffer2.from(mergedText, "utf8"), + dryRun + }); + return { cleanMerge, mergeResult: { mode, path: path2, oid, type } }; +} +async function _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author, + committer, + signingKey, + onSign, + mergeDriver +}) { + if (ours === void 0) { + ours = await _currentBranch({ fs, gitdir, fullname: true }); + } + ours = await GitRefManager.expand({ + fs, + gitdir, + ref: ours + }); + theirs = await GitRefManager.expand({ + fs, + gitdir, + ref: theirs + }); + const ourOid = await GitRefManager.resolve({ + fs, + gitdir, + ref: ours + }); + const theirOid = await GitRefManager.resolve({ + fs, + gitdir, + ref: theirs + }); + const baseOids = await _findMergeBase({ + fs, + cache, + gitdir, + oids: [ourOid, theirOid] + }); + if (baseOids.length !== 1) { + throw new MergeNotSupportedError(); + } + const baseOid = baseOids[0]; + if (baseOid === theirOid) { + return { + oid: ourOid, + alreadyMerged: true + }; + } + if (fastForward2 && baseOid === ourOid) { + if (!dryRun && !noUpdateBranch) { + await GitRefManager.writeRef({ fs, gitdir, ref: ours, value: theirOid }); + } + return { + oid: theirOid, + fastForward: true + }; + } else { + if (fastForwardOnly) { + throw new FastForwardError(); + } + const tree = await mergeTree({ + fs, + cache, + dir, + gitdir, + ourOid, + theirOid, + baseOid, + ourName: abbreviateRef(ours), + baseName: "base", + theirName: abbreviateRef(theirs), + dryRun, + abortOnConflict, + mergeDriver + }); + if (!message) { + message = `Merge branch '${abbreviateRef(theirs)}' into ${abbreviateRef(ours)}`; + } + const oid = await _commit({ + fs, + cache, + gitdir, + message, + ref: ours, + tree, + parent: [ourOid, theirOid], + author, + committer, + signingKey, + onSign, + dryRun, + noUpdateBranch + }); + return { + oid, + tree, + mergeCommit: true + }; + } +} +async function _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + prune, + pruneTags, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey +}) { + try { + if (!ref) { + const head = await _currentBranch({ fs, gitdir }); + if (!head) { + throw new MissingParameterError("ref"); + } + ref = head; + } + const { fetchHead, fetchHeadDescription } = await _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + corsProxy, + ref, + url, + remote, + remoteRef, + singleBranch, + headers, + prune, + pruneTags + }); + await _merge({ + fs, + cache, + gitdir, + ours: ref, + theirs: fetchHead, + fastForward: fastForward2, + fastForwardOnly, + message: `Merge ${fetchHeadDescription}`, + author, + committer, + signingKey, + dryRun: false, + noUpdateBranch: false + }); + await _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout: false + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } +} +async function fastForward({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + corsProxy, + singleBranch, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + const thisWillNotBeUsed = { + name: "", + email: "", + timestamp: Date.now(), + timezoneOffset: 0 + }; + return await _pull({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForwardOnly: true, + corsProxy, + singleBranch, + headers, + author: thisWillNotBeUsed, + committer: thisWillNotBeUsed + }); + } catch (err) { + err.caller = "git.fastForward"; + throw err; + } +} +async function fetch({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remote, + remoteRef, + url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return await _fetch({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + remoteRef, + url, + corsProxy, + depth, + since, + exclude, + relative, + tags, + singleBranch, + headers, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.fetch"; + throw err; + } +} +async function findMergeBase({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return await _findMergeBase({ + fs: new FileSystem(fs), + cache, + gitdir, + oids + }); + } catch (err) { + err.caller = "git.findMergeBase"; + throw err; + } +} +async function _findRoot({ fs, filepath }) { + if (await fs.exists(join(filepath, ".git"))) { + return filepath; + } else { + const parent = dirname(filepath); + if (parent === filepath) { + throw new NotFoundError(`git root for ${filepath}`); + } + return _findRoot({ fs, filepath: parent }); + } +} +async function findRoot({ fs, filepath }) { + try { + assertParameter("fs", fs); + assertParameter("filepath", filepath); + return await _findRoot({ fs: new FileSystem(fs), filepath }); + } catch (err) { + err.caller = "git.findRoot"; + throw err; + } +} +async function getConfig({ fs, dir, gitdir = join(dir, ".git"), path: path2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return await _getConfig({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfig"; + throw err; + } +} +async function _getConfigAll({ fs, gitdir, path: path2 }) { + const config = await GitConfigManager.get({ fs, gitdir }); + return config.getall(path2); +} +async function getConfigAll({ + fs, + dir, + gitdir = join(dir, ".git"), + path: path2 +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return await _getConfigAll({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfigAll"; + throw err; + } +} +async function getRemoteInfo({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const result = { + capabilities: [...remote.capabilities] + }; + for (const [ref, oid] of remote.refs) { + const parts = ref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = oid; + } + for (const [symref, ref] of remote.symrefs) { + const parts = symref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = ref; + } + return result; + } catch (err) { + err.caller = "git.getRemoteInfo"; + throw err; + } +} +function formatInfoRefs(remote, prefix, symrefs, peelTags) { + const refs = []; + for (const [key2, value] of remote.refs) { + if (prefix && !key2.startsWith(prefix)) + continue; + if (key2.endsWith("^{}")) { + if (peelTags) { + const _key = key2.replace("^{}", ""); + const last2 = refs[refs.length - 1]; + const r = last2.ref === _key ? last2 : refs.find((x) => x.ref === _key); + if (r === void 0) { + throw new Error("I did not expect this to happen"); + } + r.peeled = value; + } + continue; + } + const ref = { ref: key2, oid: value }; + if (symrefs) { + if (remote.symrefs.has(key2)) { + ref.target = remote.symrefs.get(key2); + } + } + refs.push(ref); + } + return refs; +} +async function getRemoteInfo2({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2 +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 2) { + return { + protocolVersion: remote.protocolVersion, + capabilities: remote.capabilities2 + }; + } + const capabilities = {}; + for (const cap of remote.capabilities) { + const [key2, value] = cap.split("="); + if (value) { + capabilities[key2] = value; + } else { + capabilities[key2] = true; + } + } + return { + protocolVersion: 1, + capabilities, + refs: formatInfoRefs(remote, void 0, true, true) + }; + } catch (err) { + err.caller = "git.getRemoteInfo2"; + throw err; + } +} +async function hashObject({ + type, + object, + format = "content", + oid = void 0 +}) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = await shasum(object); + } + return { oid, object }; +} +async function hashBlob({ object }) { + try { + assertParameter("object", object); + if (typeof object === "string") { + object = Buffer2.from(object, "utf8"); + } else { + object = Buffer2.from(object); + } + const type = "blob"; + const { oid, object: _object } = await hashObject({ + type: "blob", + format: "content", + object + }); + return { oid, type, object: new Uint8Array(_object), format: "wrapped" }; + } catch (err) { + err.caller = "git.hashBlob"; + throw err; + } +} +async function _indexPack({ + fs, + cache, + onProgress, + dir, + gitdir, + filepath +}) { + try { + filepath = join(dir, filepath); + const pack = await fs.read(filepath); + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const idx = await GitPackIndex.fromPack({ + pack, + getExternalRefDelta, + onProgress + }); + await fs.write(filepath.replace(/\.pack$/, ".idx"), await idx.toBuffer()); + return { + oids: [...idx.hashes] + }; + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } +} +async function indexPack({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", dir); + assertParameter("filepath", filepath); + return await _indexPack({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } +} +async function init({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + if (!bare) { + assertParameter("dir", dir); + } + return await _init({ + fs: new FileSystem(fs), + bare, + dir, + gitdir, + defaultBranch + }); + } catch (err) { + err.caller = "git.init"; + throw err; + } +} +async function _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor, + depth +}) { + const shallows = await GitShallowManager.read({ fs, gitdir }); + if (!oid) { + throw new MissingParameterError("oid"); + } + if (!ancestor) { + throw new MissingParameterError("ancestor"); + } + if (oid === ancestor) + return false; + const queue = [oid]; + const visited = new Set(); + let searchdepth = 0; + while (queue.length) { + if (searchdepth++ === depth) { + throw new MaxDepthError(depth); + } + const oid2 = queue.shift(); + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: oid2 + }); + if (type !== "commit") { + throw new ObjectTypeError(oid2, type, "commit"); + } + const commit2 = GitCommit.from(object).parse(); + for (const parent of commit2.parent) { + if (parent === ancestor) + return true; + } + if (!shallows.has(oid2)) { + for (const parent of commit2.parent) { + if (!visited.has(parent)) { + queue.push(parent); + visited.add(parent); + } + } + } + } + return false; +} +async function isDescendent({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + ancestor, + depth = -1, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("ancestor", ancestor); + return await _isDescendent({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + ancestor, + depth + }); + } catch (err) { + err.caller = "git.isDescendent"; + throw err; + } +} +async function isIgnored({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + return GitIgnoreManager.isIgnored({ + fs: new FileSystem(fs), + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.isIgnored"; + throw err; + } +} +async function listBranches({ + fs, + dir, + gitdir = join(dir, ".git"), + remote +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listBranches({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.listBranches"; + throw err; + } +} +async function _listFiles({ fs, gitdir, ref, cache }) { + if (ref) { + const oid = await GitRefManager.resolve({ gitdir, fs, ref }); + const filenames = []; + await accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix: "" + }); + return filenames; + } else { + return GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + return index2.entries.map((x) => x.path); + }); + } +} +async function accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix +}) { + const { tree } = await _readTree({ fs, cache, gitdir, oid }); + for (const entry of tree) { + if (entry.type === "tree") { + await accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid: entry.oid, + filenames, + prefix: join(prefix, entry.path) + }); + } else { + filenames.push(join(prefix, entry.path)); + } + } +} +async function listFiles({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _listFiles({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listFiles"; + throw err; + } +} +async function _listNotes({ fs, cache, gitdir, ref }) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (err instanceof NotFoundError) { + return []; + } + } + const result = await _readTree({ + fs, + cache, + gitdir, + oid: parent + }); + const notes = result.tree.map((entry) => ({ + target: entry.path, + note: entry.oid + })); + return notes; +} +async function listNotes({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _listNotes({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listNotes"; + throw err; + } +} +async function _listRemotes({ fs, gitdir }) { + const config = await GitConfigManager.get({ fs, gitdir }); + const remoteNames = await config.getSubsections("remote"); + const remotes = Promise.all(remoteNames.map(async (remote) => { + const url = await config.get(`remote.${remote}.url`); + return { remote, url }; + })); + return remotes; +} +async function listRemotes({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _listRemotes({ + fs: new FileSystem(fs), + gitdir + }); + } catch (err) { + err.caller = "git.listRemotes"; + throw err; + } +} +async function parseListRefsResponse(stream) { + const read = GitPktLine.streamReader(stream); + const refs = []; + let line; + while (true) { + line = await read(); + if (line === true) + break; + if (line === null) + continue; + line = line.toString("utf8").replace(/\n$/, ""); + const [oid, ref, ...attrs] = line.split(" "); + const r = { ref, oid }; + for (const attr2 of attrs) { + const [name, value] = attr2.split(":"); + if (name === "symref-target") { + r.target = value; + } else if (name === "peeled") { + r.peeled = value; + } + } + refs.push(r); + } + return refs; +} +async function writeListRefsRequest({ prefix, symrefs, peelTags }) { + const packstream = []; + packstream.push(GitPktLine.encode("command=ls-refs\n")); + packstream.push(GitPktLine.encode(`agent=${pkg.agent} +`)); + if (peelTags || symrefs || prefix) { + packstream.push(GitPktLine.delim()); + } + if (peelTags) + packstream.push(GitPktLine.encode("peel")); + if (symrefs) + packstream.push(GitPktLine.encode("symrefs")); + if (prefix) + packstream.push(GitPktLine.encode(`ref-prefix ${prefix}`)); + packstream.push(GitPktLine.flush()); + return packstream; +} +async function listServerRefs({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2, + prefix, + symrefs, + peelTags +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const remote = await GitRemoteHTTP.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 1) { + return formatInfoRefs(remote, prefix, symrefs, peelTags); + } + const body = await writeListRefsRequest({ prefix, symrefs, peelTags }); + const res = await GitRemoteHTTP.connect({ + http, + auth: remote.auth, + headers, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + body + }); + return parseListRefsResponse(res.body); + } catch (err) { + err.caller = "git.listServerRefs"; + throw err; + } +} +async function listTags({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listTags({ fs: new FileSystem(fs), gitdir }); + } catch (err) { + err.caller = "git.listTags"; + throw err; + } +} +async function resolveCommit({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveCommit({ fs, cache, gitdir, oid }); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + return { commit: GitCommit.from(object), oid }; +} +async function _readCommit({ fs, cache, gitdir, oid }) { + const { commit: commit2, oid: commitOid } = await resolveCommit({ + fs, + cache, + gitdir, + oid + }); + const result = { + oid: commitOid, + commit: commit2.parse(), + payload: commit2.withoutSignature() + }; + return result; +} +function compareAge(a, b) { + return a.committer.timestamp - b.committer.timestamp; +} +var EMPTY_OID = "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"; +async function resolveFileIdInTree({ fs, cache, gitdir, oid, fileId }) { + if (fileId === EMPTY_OID) + return; + const _oid = oid; + let filepath; + const result = await resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (fileId === result.oid) { + filepath = result.path; + } else { + filepath = await _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid: _oid + }); + if (Array.isArray(filepath)) { + if (filepath.length === 0) + filepath = void 0; + else if (filepath.length === 1) + filepath = filepath[0]; + } + } + return filepath; +} +async function _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid, + filepaths = [], + parentPath = "" +}) { + const walks = tree.entries().map(function(entry) { + let result; + if (entry.oid === fileId) { + result = join(parentPath, entry.path); + filepaths.push(result); + } else if (entry.type === "tree") { + result = _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }).then(function({ object }) { + return _resolveFileId({ + fs, + cache, + gitdir, + tree: GitTree.from(object), + fileId, + oid, + filepaths, + parentPath: join(parentPath, entry.path) + }); + }); + } + return result; + }); + await Promise.all(walks); + return filepaths; +} +async function _log({ + fs, + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow +}) { + const sinceTimestamp = typeof since === "undefined" ? void 0 : Math.floor(since.valueOf() / 1e3); + const commits = []; + const shallowCommits = await GitShallowManager.read({ fs, gitdir }); + const oid = await GitRefManager.resolve({ fs, gitdir, ref }); + const tips = [await _readCommit({ fs, cache, gitdir, oid })]; + let lastFileOid; + let lastCommit; + let isOk; + function endCommit(commit2) { + if (isOk && filepath) + commits.push(commit2); + } + while (tips.length > 0) { + const commit2 = tips.pop(); + if (sinceTimestamp !== void 0 && commit2.commit.committer.timestamp <= sinceTimestamp) { + break; + } + if (filepath) { + let vFileOid; + try { + vFileOid = await resolveFilepath({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + filepath + }); + if (lastCommit && lastFileOid !== vFileOid) { + commits.push(lastCommit); + } + lastFileOid = vFileOid; + lastCommit = commit2; + isOk = true; + } catch (e) { + if (e instanceof NotFoundError) { + let found = follow && lastFileOid; + if (found) { + found = await resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + fileId: lastFileOid + }); + if (found) { + if (Array.isArray(found)) { + if (lastCommit) { + const lastFound = await resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: lastCommit.commit.tree, + fileId: lastFileOid + }); + if (Array.isArray(lastFound)) { + found = found.filter((p) => lastFound.indexOf(p) === -1); + if (found.length === 1) { + found = found[0]; + filepath = found; + if (lastCommit) + commits.push(lastCommit); + } else { + found = false; + if (lastCommit) + commits.push(lastCommit); + break; + } + } + } + } else { + filepath = found; + if (lastCommit) + commits.push(lastCommit); + } + } + } + if (!found) { + if (isOk && lastFileOid) { + commits.push(lastCommit); + if (!force) + break; + } + if (!force && !follow) + throw e; + } + lastCommit = commit2; + isOk = false; + } else + throw e; + } + } else { + commits.push(commit2); + } + if (depth !== void 0 && commits.length === depth) { + endCommit(commit2); + break; + } + if (!shallowCommits.has(commit2.oid)) { + for (const oid2 of commit2.commit.parent) { + const commit3 = await _readCommit({ fs, cache, gitdir, oid: oid2 }); + if (!tips.map((commit4) => commit4.oid).includes(commit3.oid)) { + tips.push(commit3); + } + } + } + if (tips.length === 0) { + endCommit(commit2); + } + tips.sort((a, b) => compareAge(a.commit, b.commit)); + } + return commits; +} +async function log({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref = "HEAD", + depth, + since, + force, + follow, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _log({ + fs: new FileSystem(fs), + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow + }); + } catch (err) { + err.caller = "git.log"; + throw err; + } +} +async function merge({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author: _author, + committer: _committer, + signingKey, + cache = {}, + mergeDriver +}) { + try { + assertParameter("fs", _fs); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("author"); + } + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("committer"); + } + return await _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2, + fastForwardOnly, + dryRun, + noUpdateBranch, + abortOnConflict, + message, + author, + committer, + signingKey, + onSign, + mergeDriver + }); + } catch (err) { + err.caller = "git.merge"; + throw err; + } +} +var types = { + commit: 16, + tree: 32, + blob: 48, + tag: 64, + ofs_delta: 96, + ref_delta: 112 +}; +async function _pack({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids +}) { + const hash2 = new import_sha1.default(); + const outputStream = []; + function write(chunk, enc) { + const buff = Buffer2.from(chunk, enc); + outputStream.push(buff); + hash2.update(buff); + } + async function writeObject2({ stype, object }) { + const type = types[stype]; + let length = object.length; + let multibyte = length > 15 ? 128 : 0; + const lastFour = length & 15; + length = length >>> 4; + let byte = (multibyte | type | lastFour).toString(16); + write(byte, "hex"); + while (multibyte) { + multibyte = length > 127 ? 128 : 0; + byte = multibyte | length & 127; + write(padHex(2, byte), "hex"); + length = length >>> 7; + } + write(Buffer2.from(await deflate(object))); + } + write("PACK"); + write("00000002", "hex"); + write(padHex(8, oids.length), "hex"); + for (const oid of oids) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + await writeObject2({ write, object, stype: type }); + } + const digest = hash2.digest(); + outputStream.push(digest); + return outputStream; +} +async function _packObjects({ fs, cache, gitdir, oids, write }) { + const buffers = await _pack({ fs, cache, gitdir, oids }); + const packfile = Buffer2.from(await collect(buffers)); + const packfileSha = packfile.slice(-20).toString("hex"); + const filename = `pack-${packfileSha}.pack`; + if (write) { + await fs.write(join(gitdir, `objects/pack/${filename}`), packfile); + return { filename }; + } + return { + filename, + packfile: new Uint8Array(packfile) + }; +} +async function packObjects({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + write = false, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return await _packObjects({ + fs: new FileSystem(fs), + cache, + gitdir, + oids, + write + }); + } catch (err) { + err.caller = "git.packObjects"; + throw err; + } +} +async function pull({ + fs: _fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + prune = false, + pruneTags = false, + fastForward: fastForward2 = true, + fastForwardOnly = false, + corsProxy, + singleBranch, + headers = {}, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } +} +async function listCommitsAndTags({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + start, + finish +}) { + const shallows = await GitShallowManager.read({ fs, gitdir }); + const startingSet = new Set(); + const finishingSet = new Set(); + for (const ref of start) { + startingSet.add(await GitRefManager.resolve({ fs, gitdir, ref })); + } + for (const ref of finish) { + try { + const oid = await GitRefManager.resolve({ fs, gitdir, ref }); + finishingSet.add(oid); + } catch (err) { + } + } + const visited = new Set(); + async function walk2(oid) { + visited.add(oid); + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const commit2 = tag2.headers().object; + return walk2(commit2); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + if (!shallows.has(oid)) { + const commit2 = GitCommit.from(object); + const parents = commit2.headers().parent; + for (oid of parents) { + if (!finishingSet.has(oid) && !visited.has(oid)) { + await walk2(oid); + } + } + } + } + for (const oid of startingSet) { + await walk2(oid); + } + return visited; +} +async function listObjects({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids +}) { + const visited = new Set(); + async function walk2(oid) { + if (visited.has(oid)) + return; + visited.add(oid); + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const obj = tag2.headers().object; + await walk2(obj); + } else if (type === "commit") { + const commit2 = GitCommit.from(object); + const tree = commit2.headers().tree; + await walk2(tree); + } else if (type === "tree") { + const tree = GitTree.from(object); + for (const entry of tree) { + if (entry.type === "blob") { + visited.add(entry.oid); + } + if (entry.type === "tree") { + await walk2(entry.oid); + } + } + } + } + for (const oid of oids) { + await walk2(oid); + } + return visited; +} +async function parseReceivePackResponse(packfile) { + const result = {}; + let response = ""; + const read = GitPktLine.streamReader(packfile); + let line = await read(); + while (line !== true) { + if (line !== null) + response += line.toString("utf8") + "\n"; + line = await read(); + } + const lines = response.toString("utf8").split("\n"); + line = lines.shift(); + if (!line.startsWith("unpack ")) { + throw new ParseError('unpack ok" or "unpack [error message]', line); + } + result.ok = line === "unpack ok"; + if (!result.ok) { + result.error = line.slice("unpack ".length); + } + result.refs = {}; + for (const line2 of lines) { + if (line2.trim() === "") + continue; + const status2 = line2.slice(0, 2); + const refAndMessage = line2.slice(3); + let space2 = refAndMessage.indexOf(" "); + if (space2 === -1) + space2 = refAndMessage.length; + const ref = refAndMessage.slice(0, space2); + const error = refAndMessage.slice(space2 + 1); + result.refs[ref] = { + ok: status2 === "ok", + error + }; + } + return result; +} +async function writeReceivePackRequest({ + capabilities = [], + triplets = [] +}) { + const packstream = []; + let capsFirstLine = `\0 ${capabilities.join(" ")}`; + for (const trip of triplets) { + packstream.push(GitPktLine.encode(`${trip.oldoid} ${trip.oid} ${trip.fullRef}${capsFirstLine} +`)); + capsFirstLine = ""; + } + packstream.push(GitPktLine.flush()); + return packstream; +} +async function _push({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote, + url: _url, + force = false, + delete: _delete = false, + corsProxy, + headers = {} +}) { + const ref = _ref || await _currentBranch({ fs, gitdir }); + if (typeof ref === "undefined") { + throw new MissingParameterError("ref"); + } + const config = await GitConfigManager.get({ fs, gitdir }); + remote = remote || await config.get(`branch.${ref}.pushRemote`) || await config.get("remote.pushDefault") || await config.get(`branch.${ref}.remote`) || "origin"; + const url = _url || await config.get(`remote.${remote}.pushurl`) || await config.get(`remote.${remote}.url`); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || await config.get(`branch.${ref}.merge`); + if (typeof url === "undefined") { + throw new MissingParameterError("remoteRef"); + } + if (corsProxy === void 0) { + corsProxy = await config.get("http.corsProxy"); + } + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + const oid = _delete ? "0000000000000000000000000000000000000000" : await GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const httpRemote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-receive-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = httpRemote.auth; + let fullRemoteRef; + if (!remoteRef) { + fullRemoteRef = fullRef; + } else { + try { + fullRemoteRef = await GitRefManager.expandAgainstMap({ + ref: remoteRef, + map: httpRemote.refs + }); + } catch (err) { + if (err instanceof NotFoundError) { + fullRemoteRef = remoteRef.startsWith("refs/") ? remoteRef : `refs/heads/${remoteRef}`; + } else { + throw err; + } + } + } + const oldoid = httpRemote.refs.get(fullRemoteRef) || "0000000000000000000000000000000000000000"; + const thinPack = !httpRemote.capabilities.has("no-thin"); + let objects = new Set(); + if (!_delete) { + const finish = [...httpRemote.refs.values()]; + let skipObjects = new Set(); + if (oldoid !== "0000000000000000000000000000000000000000") { + const mergebase = await _findMergeBase({ + fs, + cache, + gitdir, + oids: [oid, oldoid] + }); + for (const oid2 of mergebase) + finish.push(oid2); + if (thinPack) { + skipObjects = await listObjects({ fs, cache, gitdir, oids: mergebase }); + } + } + if (!finish.includes(oid)) { + const commits = await listCommitsAndTags({ + fs, + cache, + gitdir, + start: [oid], + finish + }); + objects = await listObjects({ fs, cache, gitdir, oids: commits }); + } + if (thinPack) { + try { + const ref2 = await GitRefManager.resolve({ + fs, + gitdir, + ref: `refs/remotes/${remote}/HEAD`, + depth: 2 + }); + const { oid: oid2 } = await GitRefManager.resolveAgainstMap({ + ref: ref2.replace(`refs/remotes/${remote}/`, ""), + fullref: ref2, + map: httpRemote.refs + }); + const oids = [oid2]; + for (const oid3 of await listObjects({ fs, cache, gitdir, oids })) { + skipObjects.add(oid3); + } + } catch (e) { + } + for (const oid2 of skipObjects) { + objects.delete(oid2); + } + } + if (oid === oldoid) + force = true; + if (!force) { + if (fullRef.startsWith("refs/tags") && oldoid !== "0000000000000000000000000000000000000000") { + throw new PushRejectedError("tag-exists"); + } + if (oid !== "0000000000000000000000000000000000000000" && oldoid !== "0000000000000000000000000000000000000000" && !await _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor: oldoid, + depth: -1 + })) { + throw new PushRejectedError("not-fast-forward"); + } + } + } + const capabilities = filterCapabilities([...httpRemote.capabilities], ["report-status", "side-band-64k", `agent=${pkg.agent}`]); + const packstream1 = await writeReceivePackRequest({ + capabilities, + triplets: [{ oldoid, oid, fullRef: fullRemoteRef }] + }); + const packstream2 = _delete ? [] : await _pack({ + fs, + cache, + gitdir, + oids: [...objects] + }); + const res = await GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-receive-pack", + url, + auth, + headers, + body: [...packstream1, ...packstream2] + }); + const { packfile, progress } = await GitSideBand.demux(res.body); + if (onMessage) { + const lines = splitLines(progress); + forAwait(lines, async (line) => { + await onMessage(line); + }); + } + const result = await parseReceivePackResponse(packfile); + if (res.headers) { + result.headers = res.headers; + } + if (remote && result.ok && result.refs[fullRemoteRef].ok) { + const ref2 = `refs/remotes/${remote}/${fullRemoteRef.replace("refs/heads", "")}`; + if (_delete) { + await GitRefManager.deleteRef({ fs, gitdir, ref: ref2 }); + } else { + await GitRefManager.writeRef({ fs, gitdir, ref: ref2, value: oid }); + } + } + if (result.ok && Object.values(result.refs).every((result2) => result2.ok)) { + return result; + } else { + const prettyDetails = Object.entries(result.refs).filter(([k, v]) => !v.ok).map(([k, v]) => ` + - ${k}: ${v.error}`).join(""); + throw new GitPushError(prettyDetails, result); + } +} +async function push({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remoteRef, + remote = "origin", + url, + force = false, + delete: _delete = false, + corsProxy, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return await _push({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remoteRef, + remote, + url, + force, + delete: _delete, + corsProxy, + headers + }); + } catch (err) { + err.caller = "git.push"; + throw err; + } +} +async function resolveBlob({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveBlob({ fs, cache, gitdir, oid }); + } + if (type !== "blob") { + throw new ObjectTypeError(oid, type, "blob"); + } + return { oid, blob: new Uint8Array(object) }; +} +async function _readBlob({ + fs, + cache, + gitdir, + oid, + filepath = void 0 +}) { + if (filepath !== void 0) { + oid = await resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const blob = await resolveBlob({ + fs, + cache, + gitdir, + oid + }); + return blob; +} +async function readBlob({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readBlob({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readBlob"; + throw err; + } +} +async function readCommit({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readCommit({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readCommit"; + throw err; + } +} +async function _readNote({ + fs, + cache, + gitdir, + ref = "refs/notes/commits", + oid +}) { + const parent = await GitRefManager.resolve({ gitdir, fs, ref }); + const { blob } = await _readBlob({ + fs, + cache, + gitdir, + oid: parent, + filepath: oid + }); + return blob; +} +async function readNote({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oid", oid); + return await _readNote({ + fs: new FileSystem(fs), + cache, + gitdir, + ref, + oid + }); + } catch (err) { + err.caller = "git.readNote"; + throw err; + } +} +async function readObject({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + oid, + format = "parsed", + filepath = void 0, + encoding = void 0, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + if (filepath !== void 0) { + oid = await resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } + const _format = format === "parsed" ? "content" : format; + const result = await _readObject({ + fs, + cache, + gitdir, + oid, + format: _format + }); + result.oid = oid; + if (format === "parsed") { + result.format = "parsed"; + switch (result.type) { + case "commit": + result.object = GitCommit.from(result.object).parse(); + break; + case "tree": + result.object = GitTree.from(result.object).entries(); + break; + case "blob": + if (encoding) { + result.object = result.object.toString(encoding); + } else { + result.object = new Uint8Array(result.object); + result.format = "content"; + } + break; + case "tag": + result.object = GitAnnotatedTag.from(result.object).parse(); + break; + default: + throw new ObjectTypeError(result.oid, result.type, "blob|commit|tag|tree"); + } + } else if (result.format === "deflated" || result.format === "wrapped") { + result.type = result.format; + } + return result; + } catch (err) { + err.caller = "git.readObject"; + throw err; + } +} +async function _readTag({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid, + format: "content" + }); + if (type !== "tag") { + throw new ObjectTypeError(oid, type, "tag"); + } + const tag2 = GitAnnotatedTag.from(object); + const result = { + oid, + tag: tag2.parse(), + payload: tag2.payload() + }; + return result; +} +async function readTag({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readTag({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readTag"; + throw err; + } +} +async function readTree({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath = void 0, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readTree({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readTree"; + throw err; + } +} +async function remove({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + await GitIndexManager.acquire({ fs: new FileSystem(_fs), gitdir, cache }, async function(index2) { + index2.delete({ filepath }); + }); + } catch (err) { + err.caller = "git.remove"; + throw err; + } +} +async function _removeNote({ + fs, + cache, + onSign, + gitdir, + ref = "refs/notes/commits", + oid, + author, + committer, + signingKey +}) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = await _readTree({ + fs, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + tree = tree.filter((entry) => entry.path !== oid); + const treeOid = await _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = await _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note removed by 'isomorphic-git removeNote' +`, + author, + committer, + signingKey + }); + return commitOid; +} +async function removeNote({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _removeNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.removeNote"; + throw err; + } +} +async function _renameBranch({ + fs, + gitdir, + oldref, + ref, + checkout: checkout2 = false +}) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (oldref !== import_clean_git_ref.default.clean(oldref)) { + throw new InvalidRefNameError(oldref, import_clean_git_ref.default.clean(oldref)); + } + const fulloldref = `refs/heads/${oldref}`; + const fullnewref = `refs/heads/${ref}`; + const newexist = await GitRefManager.exists({ fs, gitdir, ref: fullnewref }); + if (newexist) { + throw new AlreadyExistsError("branch", ref, false); + } + const value = await GitRefManager.resolve({ + fs, + gitdir, + ref: fulloldref, + depth: 1 + }); + await GitRefManager.writeRef({ fs, gitdir, ref: fullnewref, value }); + await GitRefManager.deleteRef({ fs, gitdir, ref: fulloldref }); + if (checkout2) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullnewref + }); + } +} +async function renameBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + oldref, + checkout: checkout2 = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oldref", oldref); + return await _renameBranch({ + fs: new FileSystem(fs), + gitdir, + ref, + oldref, + checkout: checkout2 + }); + } catch (err) { + err.caller = "git.renameBranch"; + throw err; + } +} +async function hashObject$1({ gitdir, type, object }) { + return shasum(GitObject.wrap({ type, object })); +} +async function resetIndex({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + let oid; + let workdirOid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: ref || "HEAD" }); + } catch (e) { + if (ref) { + throw e; + } + } + if (oid) { + try { + oid = await resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } catch (e) { + oid = null; + } + } + let stats = { + ctime: new Date(0), + mtime: new Date(0), + dev: 0, + ino: 0, + mode: 0, + uid: 0, + gid: 0, + size: 0 + }; + const object = dir && await fs.read(join(dir, filepath)); + if (object) { + workdirOid = await hashObject$1({ + gitdir, + type: "blob", + object + }); + if (oid === workdirOid) { + stats = await fs.lstat(join(dir, filepath)); + } + } + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + index2.delete({ filepath }); + if (oid) { + index2.insert({ filepath, stats, oid }); + } + }); + } catch (err) { + err.caller = "git.reset"; + throw err; + } +} +async function resolveRef({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + depth +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const oid = await GitRefManager.resolve({ + fs: new FileSystem(fs), + gitdir, + ref, + depth + }); + return oid; + } catch (err) { + err.caller = "git.resolveRef"; + throw err; + } +} +async function setConfig({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + path: path2, + value, + append: append3 = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + const fs = new FileSystem(_fs); + const config = await GitConfigManager.get({ fs, gitdir }); + if (append3) { + await config.append(path2, value); + } else { + await config.set(path2, value); + } + await GitConfigManager.save({ fs, gitdir, config }); + } catch (err) { + err.caller = "git.setConfig"; + throw err; + } +} +async function status({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + const ignored = await GitIgnoreManager.isIgnored({ + fs, + gitdir, + dir, + filepath + }); + if (ignored) { + return "ignored"; + } + const headTree = await getHeadTree({ fs, cache, gitdir }); + const treeOid = await getOidAtPath({ + fs, + cache, + gitdir, + tree: headTree, + path: filepath + }); + const indexEntry = await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + for (const entry of index2) { + if (entry.path === filepath) + return entry; + } + return null; + }); + const stats = await fs.lstat(join(dir, filepath)); + const H = treeOid !== null; + const I = indexEntry !== null; + const W = stats !== null; + const getWorkdirOid = async () => { + if (I && !compareStats(indexEntry, stats)) { + return indexEntry.oid; + } else { + const object = await fs.read(join(dir, filepath)); + const workdirOid = await hashObject$1({ + gitdir, + type: "blob", + object + }); + if (I && indexEntry.oid === workdirOid) { + if (stats.size !== -1) { + GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + index2.insert({ filepath, stats, oid: workdirOid }); + }); + } + } + return workdirOid; + } + }; + if (!H && !W && !I) + return "absent"; + if (!H && !W && I) + return "*absent"; + if (!H && W && !I) + return "*added"; + if (!H && W && I) { + const workdirOid = await getWorkdirOid(); + return workdirOid === indexEntry.oid ? "added" : "*added"; + } + if (H && !W && !I) + return "deleted"; + if (H && !W && I) { + return treeOid === indexEntry.oid ? "*deleted" : "*deleted"; + } + if (H && W && !I) { + const workdirOid = await getWorkdirOid(); + return workdirOid === treeOid ? "*undeleted" : "*undeletemodified"; + } + if (H && W && I) { + const workdirOid = await getWorkdirOid(); + if (workdirOid === treeOid) { + return workdirOid === indexEntry.oid ? "unmodified" : "*unmodified"; + } else { + return workdirOid === indexEntry.oid ? "modified" : "*modified"; + } + } + } catch (err) { + err.caller = "git.status"; + throw err; + } +} +async function getOidAtPath({ fs, cache, gitdir, tree, path: path2 }) { + if (typeof path2 === "string") + path2 = path2.split("/"); + const dirname2 = path2.shift(); + for (const entry of tree) { + if (entry.path === dirname2) { + if (path2.length === 0) { + return entry.oid; + } + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type === "tree") { + const tree2 = GitTree.from(object); + return getOidAtPath({ fs, cache, gitdir, tree: tree2, path: path2 }); + } + if (type === "blob") { + throw new ObjectTypeError(entry.oid, type, "blob", path2.join("/")); + } + } + } + return null; +} +async function getHeadTree({ fs, cache, gitdir }) { + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: "HEAD" }); + } catch (e) { + if (e instanceof NotFoundError) { + return []; + } + } + const { tree } = await _readTree({ fs, cache, gitdir, oid }); + return tree; +} +async function statusMatrix({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref = "HEAD", + filepaths = ["."], + filter, + cache = {}, + ignored: shouldIgnore = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + return await _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: async function(filepath, [head, workdir, stage]) { + if (!head && !stage && workdir) { + if (!shouldIgnore) { + const isIgnored2 = await GitIgnoreManager.isIgnored({ + fs, + dir, + filepath + }); + if (isIgnored2) { + return null; + } + } + } + if (!filepaths.some((base) => worthWalking(filepath, base))) { + return null; + } + if (filter) { + if (!filter(filepath)) + return; + } + const [headType, workdirType, stageType] = await Promise.all([ + head && head.type(), + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [headType, workdirType, stageType].includes("blob"); + if ((headType === "tree" || headType === "special") && !isBlob) + return; + if (headType === "commit") + return null; + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") + return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const headOid = headType === "blob" ? await head.oid() : void 0; + const stageOid = stageType === "blob" ? await stage.oid() : void 0; + let workdirOid; + if (headType !== "blob" && workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = await workdir.oid(); + } + const entry = [void 0, headOid, workdirOid, stageOid]; + const result = entry.map((value) => entry.indexOf(value)); + result.shift(); + return [filepath, ...result]; + } + }); + } catch (err) { + err.caller = "git.statusMatrix"; + throw err; + } +} +async function tag({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + force = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + if (ref === void 0) { + throw new MissingParameterError("ref"); + } + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + const value = await GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("tag", ref); + } + await GitRefManager.writeRef({ fs, gitdir, ref, value }); + } catch (err) { + err.caller = "git.tag"; + throw err; + } +} +async function updateIndex({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + cache = {}, + filepath, + oid, + mode, + add: add2, + remove: remove3, + force +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + if (remove3) { + return await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + let fileStats2; + if (!force) { + fileStats2 = await fs.lstat(join(dir, filepath)); + if (fileStats2) { + if (fileStats2.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + return; + } + } + if (index2.has({ filepath })) { + index2.delete({ + filepath + }); + } + }); + } + let fileStats; + if (!oid) { + fileStats = await fs.lstat(join(dir, filepath)); + if (!fileStats) { + throw new NotFoundError(`file at "${filepath}" on disk and "remove" not set`); + } + if (fileStats.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + } + return await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + if (!add2 && !index2.has({ filepath })) { + throw new NotFoundError(`file at "${filepath}" in index and "add" not set`); + } + let stats = { + ctime: new Date(0), + mtime: new Date(0), + dev: 0, + ino: 0, + mode, + uid: 0, + gid: 0, + size: 0 + }; + if (!oid) { + stats = fileStats; + const object = stats.isSymbolicLink() ? await fs.readlink(join(dir, filepath)) : await fs.read(join(dir, filepath)); + oid = await _writeObject({ + fs, + gitdir, + type: "blob", + format: "content", + object + }); + } + index2.insert({ + filepath, + oid, + stats + }); + return oid; + }); + } catch (err) { + err.caller = "git.updateIndex"; + throw err; + } +} +function version() { + try { + return pkg.version; + } catch (err) { + err.caller = "git.version"; + throw err; + } +} +async function walk({ + fs, + dir, + gitdir = join(dir, ".git"), + trees, + map, + reduce, + iterate, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("trees", trees); + return await _walk({ + fs: new FileSystem(fs), + cache, + dir, + gitdir, + trees, + map, + reduce, + iterate + }); + } catch (err) { + err.caller = "git.walk"; + throw err; + } +} +async function writeBlob({ fs, dir, gitdir = join(dir, ".git"), blob }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("blob", blob); + return await _writeObject({ + fs: new FileSystem(fs), + gitdir, + type: "blob", + object: blob, + format: "content" + }); + } catch (err) { + err.caller = "git.writeBlob"; + throw err; + } +} +async function _writeCommit({ fs, gitdir, commit: commit2 }) { + const object = GitCommit.from(commit2).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "commit", + object, + format: "content" + }); + return oid; +} +async function writeCommit({ + fs, + dir, + gitdir = join(dir, ".git"), + commit: commit2 +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("commit", commit2); + return await _writeCommit({ + fs: new FileSystem(fs), + gitdir, + commit: commit2 + }); + } catch (err) { + err.caller = "git.writeCommit"; + throw err; + } +} +async function writeObject({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + type, + object, + format = "parsed", + oid, + encoding = void 0 +}) { + try { + const fs = new FileSystem(_fs); + if (format === "parsed") { + switch (type) { + case "commit": + object = GitCommit.from(object).toObject(); + break; + case "tree": + object = GitTree.from(object).toObject(); + break; + case "blob": + object = Buffer2.from(object, encoding); + break; + case "tag": + object = GitAnnotatedTag.from(object).toObject(); + break; + default: + throw new ObjectTypeError(oid || "", type, "blob|commit|tag|tree"); + } + format = "content"; + } + oid = await _writeObject({ + fs, + gitdir, + type, + object, + oid, + format + }); + return oid; + } catch (err) { + err.caller = "git.writeObject"; + throw err; + } +} +async function writeRef({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + value, + force = false, + symbolic = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("value", value); + const fs = new FileSystem(_fs); + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("ref", ref); + } + if (symbolic) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref, + value + }); + } else { + value = await GitRefManager.resolve({ + fs, + gitdir, + ref: value + }); + await GitRefManager.writeRef({ + fs, + gitdir, + ref, + value + }); + } + } catch (err) { + err.caller = "git.writeRef"; + throw err; + } +} +async function _writeTag({ fs, gitdir, tag: tag2 }) { + const object = GitAnnotatedTag.from(tag2).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tag", + object, + format: "content" + }); + return oid; +} +async function writeTag({ fs, dir, gitdir = join(dir, ".git"), tag: tag2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tag", tag2); + return await _writeTag({ + fs: new FileSystem(fs), + gitdir, + tag: tag2 + }); + } catch (err) { + err.caller = "git.writeTag"; + throw err; + } +} +async function writeTree({ fs, dir, gitdir = join(dir, ".git"), tree }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tree", tree); + return await _writeTree({ + fs: new FileSystem(fs), + gitdir, + tree + }); + } catch (err) { + err.caller = "git.writeTree"; + throw err; + } +} +var index = { + Errors, + STAGE, + TREE, + WORKDIR, + add, + addNote, + addRemote, + annotatedTag, + branch, + checkout, + clone, + commit, + getConfig, + getConfigAll, + setConfig, + currentBranch, + deleteBranch, + deleteRef, + deleteRemote, + deleteTag, + expandOid, + expandRef, + fastForward, + fetch, + findMergeBase, + findRoot, + getRemoteInfo, + getRemoteInfo2, + hashBlob, + indexPack, + init, + isDescendent, + isIgnored, + listBranches, + listFiles, + listNotes, + listRemotes, + listServerRefs, + listTags, + log, + merge, + packObjects, + pull, + push, + readBlob, + readCommit, + readNote, + readObject, + readTag, + readTree, + remove, + removeNote, + renameBranch, + resetIndex, + updateIndex, + resolveRef, + status, + statusMatrix, + tag, + version, + walk, + writeBlob, + writeCommit, + writeObject, + writeRef, + writeTag, + writeTree +}; +var isomorphic_git_default = index; + +// src/main.ts +var import_obsidian23 = __toModule(require("obsidian")); + +// src/promiseQueue.ts +init_polyfill_buffer(); +var PromiseQueue = class { + constructor() { + this.tasks = []; + } + addTask(task) { + this.tasks.push(task); + if (this.tasks.length === 1) { + this.handleTask(); + } + } + async handleTask() { + if (this.tasks.length > 0) { + this.tasks[0]().finally(() => { + this.tasks.shift(); + this.handleTask(); + }); + } + } +}; + +// src/settings.ts +init_polyfill_buffer(); +var import_obsidian7 = __toModule(require("obsidian")); + +// src/isomorphicGit.ts +init_polyfill_buffer(); + +// node_modules/diff/lib/index.mjs +init_polyfill_buffer(); +function Diff() { +} +Diff.prototype = { + diff: function diff(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self3 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + if (options.maxEditLength) { + maxEditLength = Math.min(maxEditLength, options.maxEditLength); + } + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self3.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self3.pushComponent(basePath.components, true, void 0); + } + _oldPos = self3.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self3, basePath.components, newString, oldString, self3.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last2 = components[components.length - 1]; + if (last2 && last2.added === added && last2.removed === removed) { + components[components.length - 1] = { + count: last2.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join2(chars) { + return chars.join(""); + } +}; +function buildValues(diff2, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff2.join(value); + } else { + component.value = diff2.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff2.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff2.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; +} +function clonePath(path2) { + return { + newPos: path2.newPos, + components: path2.components.slice(0) + }; +} +var characterDiff = new Diff(); +function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); +} +var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; +var reWhitespace = /\S/; +var wordDiff = new Diff(); +wordDiff.equals = function(left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); +}; +wordDiff.tokenize = function(value) { + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); + for (var i = 0; i < tokens.length - 1; i++) { + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + return tokens; +}; +function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); +} +var lineDiff = new Diff(); +lineDiff.tokenize = function(value) { + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; +}; +function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); +} +var sentenceDiff = new Diff(); +sentenceDiff.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; +var cssDiff = new Diff(); +cssDiff.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); +}; +function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) + return _arrayLikeToArray(arr); +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) + return Array.from(iter); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) + arr2[i] = arr[i]; + return arr2; +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +var objectPrototypeToString = Object.prototype.toString; +var jsonDiff = new Diff(); +jsonDiff.useLongestToken = true; +jsonDiff.tokenize = lineDiff.tokenize; +jsonDiff.castInput = function(value) { + var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _this$options$stringi; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); +}; +jsonDiff.equals = function(left, right) { + return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); +}; +function canonicalize(obj, stack, replacementStack, replacer, key2) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key2, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if (objectPrototypeToString.call(obj) === "[object Array]") { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key2); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} +var arrayDiff = new Diff(); +arrayDiff.tokenize = function(value) { + return value.slice(); +}; +arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; +}; +function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === "undefined") { + options.context = 4; + } + var diff2 = diffLines(oldStr, newStr, options); + if (!diff2) { + return; + } + diff2.push({ + value: "", + lines: [] + }); + function contextLines(lines) { + return lines.map(function(entry) { + return " " + entry; + }); + } + var hunks = []; + var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; + var _loop = function _loop2(i2) { + var current = diff2[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n"); + current.lines = lines; + if (current.added || current.removed) { + var _curRange; + if (!oldRangeStart) { + var prev = diff2[i2 - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) { + return (current.added ? "+" : "-") + entry; + }))); + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + if (oldRangeStart) { + if (lines.length <= options.context * 2 && i2 < diff2.length - 2) { + var _curRange2; + (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + } else { + var _curRange3; + var contextSize = Math.min(lines.length, options.context); + (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i2 >= diff2.length - 2 && lines.length <= options.context) { + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { + curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file"); + } + if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { + curRange.push("\\ No newline at end of file"); + } + } + hunks.push(hunk); + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + for (var i = 0; i < diff2.length; i++) { + _loop(i); + } + return { + oldFileName, + newFileName, + oldHeader, + newHeader, + hunks + }; +} +function formatPatch(diff2) { + var ret = []; + if (diff2.oldFileName == diff2.newFileName) { + ret.push("Index: " + diff2.oldFileName); + } + ret.push("==================================================================="); + ret.push("--- " + diff2.oldFileName + (typeof diff2.oldHeader === "undefined" ? "" : " " + diff2.oldHeader)); + ret.push("+++ " + diff2.newFileName + (typeof diff2.newHeader === "undefined" ? "" : " " + diff2.newHeader)); + for (var i = 0; i < diff2.hunks.length; i++) { + var hunk = diff2.hunks[i]; + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@"); + ret.push.apply(ret, hunk.lines); + } + return ret.join("\n") + "\n"; +} +function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); +} +function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); +} + +// src/isomorphicGit.ts +var import_obsidian5 = __toModule(require("obsidian")); + +// src/gitManager.ts +init_polyfill_buffer(); +var GitManager = class { + constructor(plugin) { + this.plugin = plugin; + this.app = plugin.app; + } + getVaultPath(path2) { + if (this.plugin.settings.basePath) { + return this.plugin.settings.basePath + "/" + path2; + } else { + return path2; + } + } + getPath(path2, relativeToVault) { + return relativeToVault && this.plugin.settings.basePath.length > 0 ? path2.substring(this.plugin.settings.basePath.length + 1) : path2; + } + _getTreeStructure(children2, beginLength = 0) { + const list = []; + children2 = [...children2]; + while (children2.length > 0) { + const first2 = children2.first(); + const restPath = first2.path.substring(beginLength); + if (restPath.contains("/")) { + const title = restPath.substring(0, restPath.indexOf("/")); + const childrenWithSameTitle = children2.filter((item) => { + return item.path.substring(beginLength).startsWith(title + "/"); + }); + childrenWithSameTitle.forEach((item) => children2.remove(item)); + const path2 = first2.path.substring(0, restPath.indexOf("/") + beginLength); + list.push({ + title, + path: path2, + vaultPath: this.getVaultPath(path2), + children: this._getTreeStructure(childrenWithSameTitle, (beginLength > 0 ? beginLength + title.length : title.length) + 1) + }); + } else { + list.push({ + title: restPath, + statusResult: first2, + path: first2.path, + vaultPath: this.getVaultPath(first2.path) + }); + children2.remove(first2); + } + } + return list; + } + simplify(tree) { + var _a2, _b, _c, _d; + for (const node of tree) { + while (true) { + const singleChild = ((_a2 = node.children) == null ? void 0 : _a2.length) == 1; + const singleChildIsDir = ((_c = (_b = node.children) == null ? void 0 : _b.first()) == null ? void 0 : _c.statusResult) == void 0; + if (!(node.children != void 0 && singleChild && singleChildIsDir)) + break; + const child = node.children.first(); + node.title += "/" + child.title; + node.statusResult = child.statusResult; + node.path = child.path; + node.vaultPath = child.vaultPath; + node.children = child.children; + } + if (node.children != void 0) { + this.simplify(node.children); + } + (_d = node.children) == null ? void 0 : _d.sort((a, b) => { + const dirCompare = (b.statusResult == void 0 ? 1 : 0) - (a.statusResult == void 0 ? 1 : 0); + if (dirCompare != 0) { + return dirCompare; + } else { + return a.title.localeCompare(b.title); + } + }); + } + return tree.sort((a, b) => { + const dirCompare = (b.statusResult == void 0 ? 1 : 0) - (a.statusResult == void 0 ? 1 : 0); + if (dirCompare != 0) { + return dirCompare; + } else { + return a.title.localeCompare(b.title); + } + }); + } + getTreeStructure(children2) { + const tree = this._getTreeStructure(children2); + const res = this.simplify(tree); + return res; + } + async formatCommitMessage(template) { + let status2; + if (template.includes("{{numFiles}}")) { + status2 = await this.status(); + const numFiles = status2.staged.length; + template = template.replace("{{numFiles}}", String(numFiles)); + } + if (template.includes("{{hostname}}")) { + const hostname = this.plugin.localStorage.getHostname() || ""; + template = template.replace("{{hostname}}", hostname); + } + if (template.includes("{{files}}")) { + status2 = status2 != null ? status2 : await this.status(); + const changeset = {}; + status2.staged.forEach((value) => { + if (value.index in changeset) { + changeset[value.index].push(value.path); + } else { + changeset[value.index] = [value.path]; + } + }); + const chunks = []; + for (const [action, files2] of Object.entries(changeset)) { + chunks.push(action + " " + files2.join(" ")); + } + const files = chunks.join(", "); + template = template.replace("{{files}}", files); + } + const moment = window.moment; + template = template.replace("{{date}}", moment().format(this.plugin.settings.commitDateFormat)); + if (this.plugin.settings.listChangedFilesInMessageBody) { + template = template + "\n\nAffected files:\n" + (status2 != null ? status2 : await this.status()).staged.map((e) => e.path).join("\n"); + } + return template; + } +}; + +// src/myAdapter.ts +init_polyfill_buffer(); +var import_obsidian2 = __toModule(require("obsidian")); +var MyAdapter = class { + constructor(vault, plugin) { + this.plugin = plugin; + this.promises = {}; + this.adapter = vault.adapter; + this.vault = vault; + this.promises.readFile = this.readFile.bind(this); + this.promises.writeFile = this.writeFile.bind(this); + this.promises.readdir = this.readdir.bind(this); + this.promises.mkdir = this.mkdir.bind(this); + this.promises.rmdir = this.rmdir.bind(this); + this.promises.stat = this.stat.bind(this); + this.promises.unlink = this.unlink.bind(this); + this.promises.lstat = this.lstat.bind(this); + this.promises.readlink = this.readlink.bind(this); + this.promises.symlink = this.symlink.bind(this); + } + async readFile(path2, opts) { + var _a2; + this.maybeLog("Read: " + path2 + JSON.stringify(opts)); + if (opts == "utf8" || opts.encoding == "utf8") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + this.maybeLog("Reuse"); + return this.vault.read(file); + } else { + return this.adapter.read(path2); + } + } else { + if (path2.endsWith(".git/index")) { + return (_a2 = this.index) != null ? _a2 : this.adapter.readBinary(path2); + } + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + this.maybeLog("Reuse"); + return this.vault.readBinary(file); + } else { + return this.adapter.readBinary(path2); + } + } + } + async writeFile(path2, data) { + this.maybeLog("Write: " + path2); + if (typeof data === "string") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + return this.vault.modify(file, data); + } else { + return this.adapter.write(path2, data); + } + } else { + if (path2.endsWith(".git/index")) { + this.index = data; + this.indexmtime = Date.now(); + } else { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + return this.vault.modifyBinary(file, data); + } else { + return this.adapter.writeBinary(path2, data); + } + } + } + } + async readdir(path2) { + if (path2 === ".") + path2 = "/"; + const res = await this.adapter.list(path2); + const all = [...res.files, ...res.folders]; + let formattedAll; + if (path2 !== "/") { + formattedAll = all.map((e) => (0, import_obsidian2.normalizePath)(e.substring(path2.length))); + } else { + formattedAll = all; + } + return formattedAll; + } + async mkdir(path2) { + return this.adapter.mkdir(path2); + } + async rmdir(path2, opts) { + var _a2, _b; + return this.adapter.rmdir(path2, (_b = (_a2 = opts == null ? void 0 : opts.options) == null ? void 0 : _a2.recursive) != null ? _b : false); + } + async stat(path2) { + if (path2.endsWith(".git/index")) { + if (this.index !== void 0 && this.indexctime != void 0 && this.indexmtime != void 0) { + return { + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false, + size: this.index.length, + type: "file", + ctimeMs: this.indexctime, + mtimeMs: this.indexmtime + }; + } else { + const stat = await this.adapter.stat(path2); + if (stat == void 0) { + throw { "code": "ENOENT" }; + } + this.indexctime = stat.ctime; + this.indexmtime = stat.mtime; + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } + } + if (path2 === ".") + path2 = "/"; + const file = this.vault.getAbstractFileByPath(path2); + this.maybeLog("Stat: " + path2); + if (file instanceof import_obsidian2.TFile) { + this.maybeLog("Reuse stat"); + return { + ctimeMs: file.stat.ctime, + mtimeMs: file.stat.mtime, + size: file.stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } else { + const stat = await this.adapter.stat(path2); + if (stat) { + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: stat.type === "folder" ? "directory" : stat.type, + isFile: () => stat.type === "file", + isDirectory: () => stat.type === "folder", + isSymbolicLink: () => false + }; + } else { + throw { "code": "ENOENT" }; + } + } + } + async unlink(path2) { + return this.adapter.remove(path2); + } + async lstat(path2) { + return this.stat(path2); + } + async readlink(path2) { + throw new Error(`readlink of (${path2}) is not implemented.`); + } + async symlink(path2) { + throw new Error(`symlink of (${path2}) is not implemented.`); + } + async saveAndClear() { + if (this.index !== void 0) { + await this.adapter.writeBinary(this.plugin.gitManager.getVaultPath(".git/index"), this.index, { + ctime: this.indexctime, + mtime: this.indexmtime + }); + } + this.index = void 0; + this.indexctime = void 0; + this.indexmtime = void 0; + } + maybeLog(text2) { + } +}; + +// src/types.ts +init_polyfill_buffer(); +var PluginState; +(function(PluginState2) { + PluginState2[PluginState2["idle"] = 0] = "idle"; + PluginState2[PluginState2["status"] = 1] = "status"; + PluginState2[PluginState2["pull"] = 2] = "pull"; + PluginState2[PluginState2["add"] = 3] = "add"; + PluginState2[PluginState2["commit"] = 4] = "commit"; + PluginState2[PluginState2["push"] = 5] = "push"; + PluginState2[PluginState2["conflicted"] = 6] = "conflicted"; +})(PluginState || (PluginState = {})); +var FileType; +(function(FileType2) { + FileType2[FileType2["staged"] = 0] = "staged"; + FileType2[FileType2["changed"] = 1] = "changed"; + FileType2[FileType2["pulled"] = 2] = "pulled"; +})(FileType || (FileType = {})); + +// src/ui/modals/generalModal.ts +init_polyfill_buffer(); +var import_obsidian3 = __toModule(require("obsidian")); +var generalModalConfigDefaults = { + options: [], + placeholder: "", + allowEmpty: false, + onlySelection: false, + initialValue: void 0 +}; +var GeneralModal = class extends import_obsidian3.SuggestModal { + constructor(config) { + super(app); + this.config = { ...generalModalConfigDefaults, ...config }; + this.setPlaceholder(this.config.placeholder); + } + open() { + super.open(); + if (this.config.initialValue != void 0) { + this.inputEl.value = this.config.initialValue; + this.inputEl.dispatchEvent(new Event("input")); + } + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + selectSuggestion(value, evt) { + if (this.resolve) { + let res; + if (this.config.allowEmpty && value === " ") + res = ""; + else if (value === "...") + res = void 0; + else + res = value; + this.resolve(res); + } + super.selectSuggestion(value, evt); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + getSuggestions(query) { + if (this.config.onlySelection) { + return this.config.options; + } else if (this.config.allowEmpty) { + return [query.length > 0 ? query : " ", ...this.config.options]; + } else { + return [query.length > 0 ? query : "...", ...this.config.options]; + } + } + renderSuggestion(value, el) { + el.setText(value); + } + onChooseSuggestion(item, evt) { + } +}; + +// src/utils.ts +init_polyfill_buffer(); +var import_obsidian4 = __toModule(require("obsidian")); +var worthWalking2 = (filepath, root) => { + if (filepath === "." || root == null || root.length === 0 || root === ".") { + return true; + } + if (root.length >= filepath.length) { + return root.startsWith(filepath); + } else { + return filepath.startsWith(root); + } +}; +function getNewLeaf(event) { + let leaf; + if (event) { + if (event.button === 0 || event.button === 1) { + const type = import_obsidian4.Keymap.isModEvent(event); + leaf = app.workspace.getLeaf(type); + } + } else { + leaf = app.workspace.getLeaf(false); + } + return leaf; +} + +// src/isomorphicGit.ts +var IsomorphicGit = class extends GitManager { + constructor(plugin) { + super(plugin); + this.FILE = 0; + this.HEAD = 1; + this.WORKDIR = 2; + this.STAGE = 3; + this.status_mapping = { + "000": " ", + "003": "AD", + "020": "??", + "022": "A ", + "023": "AM", + "100": "D ", + "101": " D", + "103": "MD", + "110": "DA", + "111": " ", + "120": "DA", + "121": " M", + "122": "M ", + "123": "MM" + }; + this.noticeLength = 999999; + this.fs = new MyAdapter(this.app.vault, this.plugin); + } + getRepo() { + return { + fs: this.fs, + dir: this.plugin.settings.basePath, + onAuth: () => { + var _a2, _b; + return { + username: (_a2 = this.plugin.localStorage.getUsername()) != null ? _a2 : void 0, + password: (_b = this.plugin.localStorage.getPassword()) != null ? _b : void 0 + }; + }, + onAuthFailure: async () => { + new import_obsidian5.Notice("Authentication failed. Please try with different credentials"); + const username = await new GeneralModal({ placeholder: "Specify your username" }).open(); + if (username) { + const password = await new GeneralModal({ placeholder: "Specify your password/personal access token" }).open(); + if (password) { + this.plugin.localStorage.setUsername(username); + this.plugin.localStorage.setPassword(password); + return { + username, + password + }; + } + } + return { cancel: true }; + }, + http: { + async request({ + url, + method, + headers, + body + }) { + if (body) { + body = await collect2(body); + body = body.buffer; + } + const res = await (0, import_obsidian5.requestUrl)({ url, method, headers, body, throw: false }); + return { + url, + method, + headers: res.headers, + body: [new Uint8Array(res.arrayBuffer)], + statusCode: res.status, + statusMessage: res.status.toString() + }; + } + } + }; + } + async wrapFS(call) { + try { + const res = await call; + await this.fs.saveAndClear(); + return res; + } catch (error) { + await this.fs.saveAndClear(); + throw error; + } + } + async status() { + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian5.Notice("This takes longer: Getting status", this.noticeLength); + }, 2e4); + try { + this.plugin.setState(PluginState.status); + const status2 = (await this.wrapFS(isomorphic_git_default.statusMatrix({ ...this.getRepo() }))).map((row) => this.getFileStatusResult(row)); + const changed = status2.filter((fileStatus) => fileStatus.working_dir !== " "); + const staged = status2.filter((fileStatus) => fileStatus.index !== " " && fileStatus.index !== "U"); + const conflicted = []; + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + return { changed, staged, conflicted }; + } catch (error) { + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async commitAll({ message, status: status2, unstagedFiles }) { + try { + await this.stageAll({ status: status2, unstagedFiles }); + return this.commit(message); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async commit(message) { + try { + this.plugin.setState(PluginState.commit); + const formatMessage = await this.formatCommitMessage(message); + const hadConflict = this.plugin.localStorage.getConflict() === "true"; + let parent = void 0; + if (hadConflict) { + const branchInfo = await this.branchInfo(); + parent = [branchInfo.current, branchInfo.tracking]; + } + await this.wrapFS(isomorphic_git_default.commit({ + ...this.getRepo(), + message: formatMessage, + parent + })); + this.plugin.localStorage.setConflict("false"); + return; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async stage(filepath, relativeToVault) { + const gitPath = this.getPath(filepath, relativeToVault); + let vaultPath; + if (relativeToVault) { + vaultPath = filepath; + } else { + vaultPath = this.getVaultPath(filepath); + } + try { + this.plugin.setState(PluginState.add); + if (await this.app.vault.adapter.exists(vaultPath)) { + await this.wrapFS(isomorphic_git_default.add({ ...this.getRepo(), filepath: gitPath })); + } else { + await this.wrapFS(isomorphic_git_default.remove({ ...this.getRepo(), filepath: gitPath })); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async stageAll({ dir, status: status2, unstagedFiles }) { + try { + if (status2) { + await Promise.all(status2.changed.map((file) => file.working_dir !== "D" ? this.wrapFS(isomorphic_git_default.add({ ...this.getRepo(), filepath: file.path })) : isomorphic_git_default.remove({ ...this.getRepo(), filepath: file.path }))); + } else { + const filesToStage = unstagedFiles != null ? unstagedFiles : await this.getUnstagedFiles(dir != null ? dir : "."); + await Promise.all(filesToStage.map(({ filepath, deleted }) => deleted ? isomorphic_git_default.remove({ ...this.getRepo(), filepath }) : this.wrapFS(isomorphic_git_default.add({ ...this.getRepo(), filepath })))); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async unstage(filepath, relativeToVault) { + try { + this.plugin.setState(PluginState.add); + filepath = this.getPath(filepath, relativeToVault); + await this.wrapFS(isomorphic_git_default.resetIndex({ ...this.getRepo(), filepath })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async unstageAll({ dir, status: status2 }) { + try { + let staged; + if (status2) { + staged = status2.staged.map((file) => file.path); + } else { + const res = await this.getStagedFiles(dir != null ? dir : "."); + staged = res.map(({ filepath }) => filepath); + } + await this.wrapFS(Promise.all(staged.map((file) => isomorphic_git_default.resetIndex({ ...this.getRepo(), filepath: file })))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async discard(filepath) { + try { + this.plugin.setState(PluginState.add); + await this.wrapFS(isomorphic_git_default.checkout({ ...this.getRepo(), filepaths: [filepath], force: true })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async discardAll({ dir, status: status2 }) { + let files = []; + if (status2) { + if (dir != void 0) { + files = status2.changed.filter((file) => file.path.startsWith(dir)).map((file) => file.path); + } else { + files = status2.changed.map((file) => file.path); + } + } else { + files = (await this.getUnstagedFiles(dir)).map(({ filepath }) => filepath); + } + try { + await this.wrapFS(isomorphic_git_default.checkout({ ...this.getRepo(), filepaths: files, force: true })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + getProgressText(action, event) { + let out = `${action} progress:`; + if (event.phase) { + out = `${out} ${event.phase}:`; + } + if (event.loaded) { + out = `${out} ${event.loaded}`; + if (event.total) { + out = `${out} of ${event.total}`; + } + } + return out; + } + resolveRef(ref) { + return this.wrapFS(isomorphic_git_default.resolveRef({ ...this.getRepo(), ref })); + } + async pull() { + const progressNotice = this.showNotice("Initializing pull"); + try { + this.plugin.setState(PluginState.pull); + const localCommit = await this.resolveRef("HEAD"); + await this.fetch(); + const branchInfo = await this.branchInfo(); + await this.wrapFS(isomorphic_git_default.merge({ + ...this.getRepo(), + ours: branchInfo.current, + theirs: branchInfo.tracking, + abortOnConflict: false + })); + await this.wrapFS(isomorphic_git_default.checkout({ + ...this.getRepo(), + ref: branchInfo.current, + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Checkout", progress); + } + }, + remote: branchInfo.remote + })); + progressNotice == null ? void 0 : progressNotice.hide(); + const upstreamCommit = await this.resolveRef("HEAD"); + this.plugin.lastUpdate = Date.now(); + const changedFiles = await this.getFileChangesCount(localCommit, upstreamCommit); + this.showNotice("Finished pull", false); + return changedFiles.map((file) => ({ + path: file.path, + working_dir: "P", + index: "P", + vault_path: this.getVaultPath(file.path) + })); + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + if (error instanceof Errors.MergeConflictError) { + this.plugin.handleConflict(error.data.filepaths.map((file) => this.getVaultPath(file))); + } + this.plugin.displayError(error); + throw error; + } + } + async push() { + if (!await this.canPush()) { + return 0; + } + const progressNotice = this.showNotice("Initializing push"); + try { + this.plugin.setState(PluginState.status); + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const numChangedFiles = (await this.getFileChangesCount(currentBranch2, trackingBranch)).length; + this.plugin.setState(PluginState.push); + await this.wrapFS(isomorphic_git_default.push({ + ...this.getRepo(), + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Pushing", progress); + } + } + })); + progressNotice == null ? void 0 : progressNotice.hide(); + return numChangedFiles; + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async canPush() { + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const current = await this.resolveRef(currentBranch2); + const tracking = await this.resolveRef(trackingBranch); + return current != tracking; + } + async checkRequirements() { + const headExists = await this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`); + return headExists ? "valid" : "missing-repo"; + } + async branchInfo() { + var _a2, _b; + try { + const current = await isomorphic_git_default.currentBranch(this.getRepo()) || ""; + const branches = await isomorphic_git_default.listBranches(this.getRepo()); + const remote = (_a2 = await this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + const trackingBranch = (_b = await this.getConfig(`branch.${current}.merge`)) == null ? void 0 : _b.split("refs/heads")[1]; + const tracking = trackingBranch ? remote + trackingBranch : void 0; + return { + current, + tracking, + branches, + remote + }; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getCurrentRemote() { + var _a2; + const current = await isomorphic_git_default.currentBranch(this.getRepo()) || ""; + const remote = (_a2 = await this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + return remote; + } + async checkout(branch2) { + try { + return this.wrapFS(isomorphic_git_default.checkout({ + ...this.getRepo(), + ref: branch2 + })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async createBranch(branch2) { + try { + await this.wrapFS(isomorphic_git_default.branch({ ...this.getRepo(), ref: branch2, checkout: true })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async deleteBranch(branch2) { + try { + await this.wrapFS(isomorphic_git_default.deleteBranch({ ...this.getRepo(), ref: branch2 })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async branchIsMerged(branch2) { + return true; + } + async init() { + try { + await this.wrapFS(isomorphic_git_default.init(this.getRepo())); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async clone(url, dir) { + const progressNotice = this.showNotice("Initializing clone"); + try { + await this.wrapFS(isomorphic_git_default.clone({ + ...this.getRepo(), + dir, + url, + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Cloning", progress); + } + } + })); + progressNotice == null ? void 0 : progressNotice.hide(); + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async setConfig(path2, value) { + try { + return this.wrapFS(isomorphic_git_default.setConfig({ + ...this.getRepo(), + path: path2, + value + })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getConfig(path2) { + try { + return this.wrapFS(isomorphic_git_default.getConfig({ + ...this.getRepo(), + path: path2 + })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async fetch(remote) { + const progressNotice = this.showNotice("Initializing fetch"); + try { + const args = { + ...this.getRepo(), + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Fetching", progress); + } + }, + remote: remote != null ? remote : await this.getCurrentRemote() + }; + await this.wrapFS(isomorphic_git_default.fetch(args)); + progressNotice == null ? void 0 : progressNotice.hide(); + } catch (error) { + this.plugin.displayError(error); + progressNotice == null ? void 0 : progressNotice.hide(); + throw error; + } + } + async setRemote(name, url) { + try { + await this.wrapFS(isomorphic_git_default.addRemote({ ...this.getRepo(), remote: name, url, force: true })); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getRemoteBranches(remote) { + let remoteBranches = []; + remoteBranches.push(...await this.wrapFS(isomorphic_git_default.listBranches({ ...this.getRepo(), remote }))); + remoteBranches.remove("HEAD"); + remoteBranches = remoteBranches.map((e) => `${remote}/${e}`); + return remoteBranches; + } + async getRemotes() { + return (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).map((remoteUrl) => remoteUrl.remote); + } + async removeRemote(remoteName) { + await this.wrapFS(isomorphic_git_default.deleteRemote({ ...this.getRepo(), remote: remoteName })); + } + async getRemoteUrl(remote) { + var _a2; + return (_a2 = (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).filter((item) => item.remote == remote)[0]) == null ? void 0 : _a2.url; + } + updateBasePath(basePath) { + this.getRepo().dir = basePath; + } + async updateUpstreamBranch(remoteBranch) { + const [remote, branch2] = remoteBranch.split("/"); + const branchInfo = await this.branchInfo(); + await this.setConfig(`branch.${branchInfo.current}.merge`, `refs/heads/${branch2}`); + await this.setConfig(`branch.${branch2}.remote`, remote); + } + updateGitPath(gitPath) { + return; + } + async getFileChangesCount(commitHash1, commitHash2) { + return this.walkDifference({ walkers: [isomorphic_git_default.TREE({ ref: commitHash1 }), isomorphic_git_default.TREE({ ref: commitHash2 })] }); + } + async walkDifference({ walkers, dir: base }) { + const res = await this.wrapFS(isomorphic_git_default.walk({ + ...this.getRepo(), + trees: walkers, + map: async function(filepath, [A, B]) { + if (!worthWalking2(filepath, base)) { + return null; + } + if (await (A == null ? void 0 : A.type()) === "tree" || await (B == null ? void 0 : B.type()) === "tree") { + return; + } + const Aoid = await (A == null ? void 0 : A.oid()); + const Boid = await (B == null ? void 0 : B.oid()); + let type = "equal"; + if (Aoid !== Boid) { + type = "modify"; + } + if (Aoid === void 0) { + type = "add"; + } + if (Boid === void 0) { + type = "remove"; + } + if (Aoid === void 0 && Boid === void 0) { + console.log("Something weird happened:"); + console.log(A); + console.log(B); + } + if (type === "equal") { + return; + } + return { + path: filepath, + type + }; + } + })); + return res; + } + async getStagedFiles(dir = ".") { + const res = await this.walkDifference({ + walkers: [isomorphic_git_default.TREE({ ref: "HEAD" }), isomorphic_git_default.STAGE()], + dir + }); + return res.map((file) => { + return { + vault_path: this.getVaultPath(file.path), + filepath: file.path + }; + }); + } + async getUnstagedFiles(base = ".") { + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian5.Notice("This takes longer: Getting status", this.noticeLength); + }, 2e4); + try { + const repo = this.getRepo(); + const res = await this.wrapFS(isomorphic_git_default.walk({ + ...repo, + trees: [isomorphic_git_default.WORKDIR(), isomorphic_git_default.STAGE()], + map: async function(filepath, [workdir, stage]) { + if (!stage && workdir) { + const isIgnored2 = await isomorphic_git_default.isIgnored({ + ...repo, + filepath + }); + if (isIgnored2) { + return null; + } + } + if (!worthWalking2(filepath, base)) { + return null; + } + const [workdirType, stageType] = await Promise.all([ + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [workdirType, stageType].includes("blob"); + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") + return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const stageOid = stageType === "blob" ? await stage.oid() : void 0; + let workdirOid; + if (workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = await workdir.oid(); + } + if (!workdirOid) { + return { + filepath, + deleted: true + }; + } + if (workdirOid !== stageOid) { + return { + filepath, + deleted: false + }; + } + return null; + } + })); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + return res; + } catch (error) { + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async getDiffString(filePath, stagedChanges = false) { + const map = async (file, [A]) => { + if (filePath == file) { + const oid = await A.oid(); + const contents = await isomorphic_git_default.readBlob({ ...this.getRepo(), oid }); + return contents.blob; + } + }; + const stagedBlob = (await isomorphic_git_default.walk({ + ...this.getRepo(), + trees: [isomorphic_git_default.STAGE()], + map + })).first(); + const stagedContent = new TextDecoder().decode(stagedBlob); + if (stagedChanges) { + const headBlob = await readBlob({ ...this.getRepo(), filepath: filePath, oid: await this.resolveRef("HEAD") }); + const headContent = new TextDecoder().decode(headBlob.blob); + const diff2 = createPatch(filePath, headContent, stagedContent); + return diff2; + } else { + let workdirContent; + if (await app.vault.adapter.exists(filePath)) { + workdirContent = await app.vault.adapter.read(filePath); + } else { + workdirContent = ""; + } + const diff2 = createPatch(filePath, stagedContent, workdirContent); + return diff2; + } + } + async getLastCommitTime() { + const repo = this.getRepo(); + const oid = await this.resolveRef("HEAD"); + const commit2 = await isomorphic_git_default.readCommit({ ...repo, oid }); + const date = commit2.commit.committer.timestamp; + return new Date(date * 1e3); + } + getFileStatusResult(row) { + const status2 = this.status_mapping[`${row[this.HEAD]}${row[this.WORKDIR]}${row[this.STAGE]}`]; + return { + index: status2[0] == "?" ? "U" : status2[0], + working_dir: status2[1] == "?" ? "U" : status2[1], + path: row[this.FILE], + vault_path: this.getVaultPath(row[this.FILE]) + }; + } + showNotice(message, infinity = true) { + if (!this.plugin.settings.disablePopups) { + return new import_obsidian5.Notice(message, infinity ? this.noticeLength : void 0); + } + } +}; +function fromValue2(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ done: queue.length === 0, value: queue.pop() }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator2(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue2(iterable); +} +async function forAwait2(iterable, cb) { + const iter = getIterator2(iterable); + while (true) { + const { value, done } = await iter.next(); + if (value) + await cb(value); + if (done) + break; + } + if (iter.return) + iter.return(); +} +async function collect2(iterable) { + let size = 0; + const buffers = []; + await forAwait2(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; +} + +// src/simpleGit.ts +init_polyfill_buffer(); +var import_child_process2 = __toModule(require("child_process")); +var import_obsidian6 = __toModule(require("obsidian")); +var path = __toModule(require("path")); +var import_path = __toModule(require("path")); + +// node_modules/simple-git/dist/esm/index.js +init_polyfill_buffer(); +var import_file_exists = __toModule(require_dist()); +var import_debug = __toModule(require_browser()); +var import_child_process = __toModule(require("child_process")); +var import_promise_deferred = __toModule(require_dist2()); +var import_promise_deferred2 = __toModule(require_dist2()); +var __defProp2 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp2 = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp2.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule2 = (target) => __defProp2(target, "__esModule", { value: true }); +var __esm2 = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var __reExport2 = (target, module2, copyDefault, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key2 of __getOwnPropNames2(module2)) + if (!__hasOwnProp2.call(target, key2) && (copyDefault || key2 !== "default")) + __defProp2(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc2(module2, key2)) || desc.enumerable }); + } + return target; +}; +var __toCommonJS = /* @__PURE__ */ ((cache) => { + return (module2, temp) => { + return cache && cache.get(module2) || (temp = __reExport2(__markAsModule2({}), module2, 1), cache && cache.set(module2, temp), temp); + }; +})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; +var GitError; +var init_git_error = __esm2({ + "src/lib/errors/git-error.ts"() { + GitError = class extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); + } + }; + } +}); +var GitResponseError; +var init_git_response_error = __esm2({ + "src/lib/errors/git-response-error.ts"() { + init_git_error(); + GitResponseError = class extends GitError { + constructor(git, message) { + super(void 0, message || String(git)); + this.git = git; + } + }; + } +}); +var TaskConfigurationError; +var init_task_configuration_error = __esm2({ + "src/lib/errors/task-configuration-error.ts"() { + init_git_error(); + TaskConfigurationError = class extends GitError { + constructor(message) { + super(void 0, message); + } + }; + } +}); +function asFunction(source) { + return typeof source === "function" ? source : NOOP; +} +function isUserFunction(source) { + return typeof source === "function" && source !== NOOP; +} +function splitOn(input, char) { + const index2 = input.indexOf(char); + if (index2 <= 0) { + return [input, ""]; + } + return [input.substr(0, index2), input.substr(index2 + 1)]; +} +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : void 0; +} +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; + } +} +function isArrayLike(input) { + return !!(input && typeof input.length === "number"); +} +function toLinesWithContent(input = "", trimmed2 = true, separator2 = "\n") { + return input.split(separator2).reduce((output, line) => { + const lineContent = trimmed2 ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map((line) => callback(line)); +} +function folderExists(path2) { + return (0, import_file_exists.exists)(path2, import_file_exists.FOLDER); +} +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } else { + target.add(item); + } + return item; +} +function including(target, item) { + if (Array.isArray(target) && !target.includes(item)) { + target.push(item); + } + return target; +} +function remove2(target, item) { + if (Array.isArray(target)) { + const index2 = target.indexOf(item); + if (index2 >= 0) { + target.splice(index2, 1); + } + } else { + target.delete(item); + } + return item; +} +function asArray(source) { + return Array.isArray(source) ? source : [source]; +} +function asStringArray(source) { + return asArray(source).map(String); +} +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; + } + const num2 = parseInt(source, 10); + return isNaN(num2) ? onNaN : num2; +} +function prefixedArray(input, prefix) { + const output = []; + for (let i = 0, max = input.length; i < max; i++) { + output.push(prefix, input[i]); + } + return output; +} +function bufferToString(input) { + return (Array.isArray(input) ? Buffer2.concat(input) : input).toString("utf-8"); +} +function pick(source, properties) { + return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {})); +} +function delay(duration = 0) { + return new Promise((done) => setTimeout(done, duration)); +} +var NULL; +var NOOP; +var objectToString; +var init_util = __esm2({ + "src/lib/utils/util.ts"() { + NULL = "\0"; + NOOP = () => { + }; + objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); + } +}); +function filterType(input, filter, def) { + if (filter(input)) { + return input; + } + return arguments.length > 2 ? def : void 0; +} +function filterPrimitives(input, omit) { + return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes(typeof input)); +} +function filterPlainObject(input) { + return !!input && objectToString(input) === "[object Object]"; +} +function filterFunction(input) { + return typeof input === "function"; +} +var filterArray; +var filterString; +var filterStringArray; +var filterStringOrStringArray; +var filterHasLength; +var init_argument_filters = __esm2({ + "src/lib/utils/argument-filters.ts"() { + init_util(); + filterArray = (input) => { + return Array.isArray(input); + }; + filterString = (input) => { + return typeof input === "string"; + }; + filterStringArray = (input) => { + return Array.isArray(input) && input.every(filterString); + }; + filterStringOrStringArray = (input) => { + return filterString(input) || Array.isArray(input) && input.every(filterString); + }; + filterHasLength = (input) => { + if (input == null || "number|boolean|function".includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; + }; + } +}); +var ExitCodes; +var init_exit_codes = __esm2({ + "src/lib/utils/exit-codes.ts"() { + ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { + ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; + ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; + return ExitCodes2; + })(ExitCodes || {}); + } +}); +var GitOutputStreams; +var init_git_output_streams = __esm2({ + "src/lib/utils/git-output-streams.ts"() { + GitOutputStreams = class { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); + } + }; + } +}); +var LineParser; +var RemoteLineParser; +var init_line_parser = __esm2({ + "src/lib/utils/line-parser.ts"() { + LineParser = class { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index2) => this.addMatch(reg, index2, line(index2)))) { + return false; + } + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; + } + } + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index2, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index2, matched); + } + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } + }; + RemoteLineParser = class extends LineParser { + addMatch(reg, index2, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index2, line); + } + pushMatch(index2, matched) { + if (index2 > 0 || matched.length > 1) { + super.pushMatch(index2, matched); + } + } + }; + } +}); +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); + config.baseDir = config.baseDir || baseDir; + config.trimmed = config.trimmed === true; + return config; +} +var defaultOptions; +var init_simple_git_options = __esm2({ + "src/lib/utils/simple-git-options.ts"() { + defaultOptions = { + binary: "git", + maxConcurrentProcesses: 5, + config: [], + trimmed: false + }; + } +}); +function appendTaskOptions(options, commands = []) { + if (!filterPlainObject(options)) { + return commands; + } + return Object.keys(options).reduce((commands2, key2) => { + const value = options[key2]; + if (filterPrimitives(value, ["boolean"])) { + commands2.push(key2 + "=" + value); + } else { + commands2.push(key2); + } + return commands2; + }, commands); +} +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive; i < max; i++) { + if ("string|number".includes(typeof args[i])) { + command.push(String(args[i])); + } + } + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); + } + return command; +} +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof last(args) === "function"; + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); +} +function trailingOptionsArgument(args) { + const hasTrailingCallback = filterFunction(last(args)); + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); +} +function trailingFunctionArgument(args, includeNoop = true) { + const callback = asFunction(last(args)); + return includeNoop || isUserFunction(callback) ? callback : void 0; +} +var init_task_options = __esm2({ + "src/lib/utils/task-options.ts"() { + init_argument_filters(); + init_util(); + } +}); +function callTaskParser(parser3, streams) { + return parser3(streams.stdOut, streams.stdErr); +} +function parseStringResponse(result, parsers12, texts, trim = true) { + asArray(texts).forEach((text2) => { + for (let lines = toLinesWithContent(text2, trim), i = 0, max = lines.length; i < max; i++) { + const line = (offset = 0) => { + if (i + offset >= max) { + return; + } + return lines[i + offset]; + }; + parsers12.some(({ parse: parse2 }) => parse2(line, result)); + } + }); + return result; +} +var init_task_parser = __esm2({ + "src/lib/utils/task-parser.ts"() { + init_util(); + } +}); +var utils_exports = {}; +__export2(utils_exports, { + ExitCodes: () => ExitCodes, + GitOutputStreams: () => GitOutputStreams, + LineParser: () => LineParser, + NOOP: () => NOOP, + NULL: () => NULL, + RemoteLineParser: () => RemoteLineParser, + append: () => append, + appendTaskOptions: () => appendTaskOptions, + asArray: () => asArray, + asFunction: () => asFunction, + asNumber: () => asNumber, + asStringArray: () => asStringArray, + bufferToString: () => bufferToString, + callTaskParser: () => callTaskParser, + createInstanceConfig: () => createInstanceConfig, + delay: () => delay, + filterArray: () => filterArray, + filterFunction: () => filterFunction, + filterHasLength: () => filterHasLength, + filterPlainObject: () => filterPlainObject, + filterPrimitives: () => filterPrimitives, + filterString: () => filterString, + filterStringArray: () => filterStringArray, + filterStringOrStringArray: () => filterStringOrStringArray, + filterType: () => filterType, + first: () => first, + folderExists: () => folderExists, + forEachLineWithContent: () => forEachLineWithContent, + getTrailingOptions: () => getTrailingOptions, + including: () => including, + isUserFunction: () => isUserFunction, + last: () => last, + objectToString: () => objectToString, + parseStringResponse: () => parseStringResponse, + pick: () => pick, + prefixedArray: () => prefixedArray, + remove: () => remove2, + splitOn: () => splitOn, + toLinesWithContent: () => toLinesWithContent, + trailingFunctionArgument: () => trailingFunctionArgument, + trailingOptionsArgument: () => trailingOptionsArgument +}); +var init_utils = __esm2({ + "src/lib/utils/index.ts"() { + init_argument_filters(); + init_exit_codes(); + init_git_output_streams(); + init_line_parser(); + init_simple_git_options(); + init_task_options(); + init_task_parser(); + init_util(); + } +}); +var check_is_repo_exports = {}; +__export2(check_is_repo_exports, { + CheckRepoActions: () => CheckRepoActions, + checkIsBareRepoTask: () => checkIsBareRepoTask, + checkIsRepoRootTask: () => checkIsRepoRootTask, + checkIsRepoTask: () => checkIsRepoTask +}); +function checkIsRepoTask(action) { + switch (action) { + case "bare": + return checkIsBareRepoTask(); + case "root": + return checkIsRepoRootTask(); + } + const commands = ["rev-parse", "--is-inside-work-tree"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function checkIsRepoRootTask() { + const commands = ["rev-parse", "--git-dir"]; + return { + commands, + format: "utf-8", + onError, + parser(path2) { + return /^\.(git)?$/.test(path2.trim()); + } + }; +} +function checkIsBareRepoTask() { + const commands = ["rev-parse", "--is-bare-repository"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function isNotRepoMessage(error) { + return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); +} +var CheckRepoActions; +var onError; +var parser; +var init_check_is_repo = __esm2({ + "src/lib/tasks/check-is-repo.ts"() { + init_utils(); + CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { + CheckRepoActions2["BARE"] = "bare"; + CheckRepoActions2["IN_TREE"] = "tree"; + CheckRepoActions2["IS_REPO_ROOT"] = "root"; + return CheckRepoActions2; + })(CheckRepoActions || {}); + onError = ({ exitCode }, error, done, fail) => { + if (exitCode === 128 && isNotRepoMessage(error)) { + return done(Buffer2.from("false")); + } + fail(error); + }; + parser = (text2) => { + return text2.trim() === "true"; + }; + } +}); +function cleanSummaryParser(dryRun, text2) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + toLinesWithContent(text2).forEach((line) => { + const removed = line.replace(regexp, ""); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +var CleanResponse; +var removalRegexp; +var dryRunRemovalRegexp; +var isFolderRegexp; +var init_CleanSummary = __esm2({ + "src/lib/responses/CleanSummary.ts"() { + init_utils(); + CleanResponse = class { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } + }; + removalRegexp = /^[a-z]+\s*/i; + dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; + isFolderRegexp = /\/$/; + } +}); +var task_exports = {}; +__export2(task_exports, { + EMPTY_COMMANDS: () => EMPTY_COMMANDS, + adhocExecTask: () => adhocExecTask, + configurationErrorTask: () => configurationErrorTask, + isBufferTask: () => isBufferTask, + isEmptyTask: () => isEmptyTask, + straightThroughBufferTask: () => straightThroughBufferTask, + straightThroughStringTask: () => straightThroughStringTask +}); +function adhocExecTask(parser3) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser: parser3 + }; +} +function configurationErrorTask(error) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser() { + throw typeof error === "string" ? new TaskConfigurationError(error) : error; + } + }; +} +function straightThroughStringTask(commands, trimmed2 = false) { + return { + commands, + format: "utf-8", + parser(text2) { + return trimmed2 ? String(text2).trim() : text2; + } + }; +} +function straightThroughBufferTask(commands) { + return { + commands, + format: "buffer", + parser(buffer2) { + return buffer2; + } + }; +} +function isBufferTask(task) { + return task.format === "buffer"; +} +function isEmptyTask(task) { + return task.format === "empty" || !task.commands.length; +} +var EMPTY_COMMANDS; +var init_task = __esm2({ + "src/lib/tasks/task.ts"() { + init_task_configuration_error(); + EMPTY_COMMANDS = []; + } +}); +var clean_exports = {}; +__export2(clean_exports, { + CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, + CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, + CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, + CleanOptions: () => CleanOptions, + cleanTask: () => cleanTask, + cleanWithOptionsTask: () => cleanWithOptionsTask, + isCleanOptionsArray: () => isCleanOptionsArray +}); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); + } + if (!valid.options) { + return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + } + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); + } + return cleanTask(cleanMode, options); +} +function cleanTask(mode, customArgs) { + const commands = ["clean", `-${mode}`, ...customArgs]; + return { + commands, + format: "utf-8", + parser(text2) { + return cleanSummaryParser(mode === "n", text2); + } + }; +} +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +} +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, "").split("").forEach((char) => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } else { + valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); + } + }); + return { + cleanMode, + options, + valid + }; +} +function isCleanMode(cleanMode) { + return cleanMode === "f" || cleanMode === "n"; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf("i") > 0; + } + return option === "--interactive"; +} +var CONFIG_ERROR_INTERACTIVE_MODE; +var CONFIG_ERROR_MODE_REQUIRED; +var CONFIG_ERROR_UNKNOWN_OPTION; +var CleanOptions; +var CleanOptionValues; +var init_clean = __esm2({ + "src/lib/tasks/clean.ts"() { + init_CleanSummary(); + init_utils(); + init_task(); + CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; + CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; + CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; + CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { + CleanOptions2["DRY_RUN"] = "n"; + CleanOptions2["FORCE"] = "f"; + CleanOptions2["IGNORED_INCLUDED"] = "x"; + CleanOptions2["IGNORED_ONLY"] = "X"; + CleanOptions2["EXCLUDING"] = "e"; + CleanOptions2["QUIET"] = "q"; + CleanOptions2["RECURSIVE"] = "d"; + return CleanOptions2; + })(CleanOptions || {}); + CleanOptionValues = /* @__PURE__ */ new Set([ + "i", + ...asStringArray(Object.values(CleanOptions)) + ]); + } +}); +function configListParser(text2) { + const config = new ConfigList(); + for (const item of configParser(text2)) { + config.addValue(item.file, String(item.key), item.value); + } + return config; +} +function configGetParser(text2, key2) { + let value = null; + const values = []; + const scopes = /* @__PURE__ */ new Map(); + for (const item of configParser(text2, key2)) { + if (item.key !== key2) { + continue; + } + values.push(value = item.value); + if (!scopes.has(item.file)) { + scopes.set(item.file, []); + } + scopes.get(item.file).push(value); + } + return { + key: key2, + paths: Array.from(scopes.keys()), + scopes, + value, + values + }; +} +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ""); +} +function* configParser(text2, requestedKey = null) { + const lines = text2.split("\0"); + for (let i = 0, max = lines.length - 1; i < max; ) { + const file = configFilePath(lines[i++]); + let value = lines[i++]; + let key2 = requestedKey; + if (value.includes("\n")) { + const line = splitOn(value, "\n"); + key2 = line[0]; + value = line[1]; + } + yield { file, key: key2, value }; + } +} +var ConfigList; +var init_ConfigList = __esm2({ + "src/lib/responses/ConfigList.ts"() { + init_utils(); + ConfigList = class { + constructor() { + this.files = []; + this.values = /* @__PURE__ */ Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key2, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key2)) { + values[key2] = value; + } else if (Array.isArray(values[key2])) { + values[key2].push(value); + } else { + values[key2] = [values[key2], value]; + } + this._all = void 0; + } + }; + } +}); +function asConfigScope(scope, fallback) { + if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { + return scope; + } + return fallback; +} +function addConfigTask(key2, value, append22, scope) { + const commands = ["config", `--${scope}`]; + if (append22) { + commands.push("--add"); + } + commands.push(key2, value); + return { + commands, + format: "utf-8", + parser(text2) { + return text2; + } + }; +} +function getConfigTask(key2, scope) { + const commands = ["config", "--null", "--show-origin", "--get-all", key2]; + if (scope) { + commands.splice(1, 0, `--${scope}`); + } + return { + commands, + format: "utf-8", + parser(text2) { + return configGetParser(text2, key2); + } + }; +} +function listConfigTask(scope) { + const commands = ["config", "--list", "--show-origin", "--null"]; + if (scope) { + commands.push(`--${scope}`); + } + return { + commands, + format: "utf-8", + parser(text2) { + return configListParser(text2); + } + }; +} +function config_default() { + return { + addConfig(key2, value, ...rest) { + return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope(rest[1], "local")), trailingFunctionArgument(arguments)); + }, + getConfig(key2, scope) { + return this._runTask(getConfigTask(key2, asConfigScope(scope, void 0)), trailingFunctionArgument(arguments)); + }, + listConfig(...rest) { + return this._runTask(listConfigTask(asConfigScope(rest[0], void 0)), trailingFunctionArgument(arguments)); + } + }; +} +var GitConfigScope; +var init_config = __esm2({ + "src/lib/tasks/config.ts"() { + init_ConfigList(); + init_utils(); + GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { + GitConfigScope2["system"] = "system"; + GitConfigScope2["global"] = "global"; + GitConfigScope2["local"] = "local"; + GitConfigScope2["worktree"] = "worktree"; + return GitConfigScope2; + })(GitConfigScope || {}); + } +}); +function grepQueryBuilder(...params) { + return new GrepQuery().param(...params); +} +function parseGrep(grep) { + const paths = /* @__PURE__ */ new Set(); + const results = {}; + forEachLineWithContent(grep, (input) => { + const [path2, line, preview] = input.split(NULL); + paths.add(path2); + (results[path2] = results[path2] || []).push({ + line: asNumber(line), + path: path2, + preview + }); + }); + return { + paths, + results + }; +} +function grep_default() { + return { + grep(searchTerm) { + const then = trailingFunctionArgument(arguments); + const options = getTrailingOptions(arguments); + for (const option of disallowedOptions) { + if (options.includes(option)) { + return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + } + } + if (typeof searchTerm === "string") { + searchTerm = grepQueryBuilder().param(searchTerm); + } + const commands = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; + return this._runTask({ + commands, + format: "utf-8", + parser(stdOut) { + return parseGrep(stdOut); + } + }, then); + } + }; +} +var disallowedOptions; +var Query; +var _a; +var GrepQuery; +var init_grep = __esm2({ + "src/lib/tasks/grep.ts"() { + init_utils(); + init_task(); + disallowedOptions = ["-h"]; + Query = Symbol("grepQuery"); + GrepQuery = class { + constructor() { + this[_a] = []; + } + *[(_a = Query, Symbol.iterator)]() { + for (const query of this[Query]) { + yield query; + } + } + and(...and) { + and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); + return this; + } + param(...param) { + this[Query].push(...prefixedArray(param, "-e")); + return this; + } + }; + } +}); +var reset_exports = {}; +__export2(reset_exports, { + ResetMode: () => ResetMode, + getResetMode: () => getResetMode, + resetTask: () => resetTask +}); +function resetTask(mode, customArgs) { + const commands = ["reset"]; + if (isValidResetMode(mode)) { + commands.push(`--${mode}`); + } + commands.push(...customArgs); + return straightThroughStringTask(commands); +} +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; + } + switch (typeof mode) { + case "string": + case "undefined": + return "soft"; + } + return; +} +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +var ResetMode; +var ResetModes; +var init_reset = __esm2({ + "src/lib/tasks/reset.ts"() { + init_task(); + ResetMode = /* @__PURE__ */ ((ResetMode2) => { + ResetMode2["MIXED"] = "mixed"; + ResetMode2["SOFT"] = "soft"; + ResetMode2["HARD"] = "hard"; + ResetMode2["MERGE"] = "merge"; + ResetMode2["KEEP"] = "keep"; + return ResetMode2; + })(ResetMode || {}); + ResetModes = Array.from(Object.values(ResetMode)); + } +}); +function createLog() { + return (0, import_debug.default)("simple-git"); +} +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, "")) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; + } + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === "string") { + return name; + } + const childNamespace = childDebugger && childDebugger.namespace || ""; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); + } + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { + const labelPrefix = label && `[${label}]` || ""; + const spawned = []; + const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; + const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); + return step(initialStep); + function sibling(name, initial) { + return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); + } + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ""; + const debug2 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug2); + return Object.assign(debugDebugger ? debug2 : info, { + label, + sibling, + info, + step + }); + } +} +var init_git_logger = __esm2({ + "src/lib/git-logger.ts"() { + init_utils(); + import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); + import_debug.default.formatters.B = (value) => { + if (Buffer2.isBuffer(value)) { + return value.toString("utf8"); + } + return objectToString(value); + }; + } +}); +var _TasksPendingQueue; +var TasksPendingQueue; +var init_tasks_pending_queue = __esm2({ + "src/lib/runners/tasks-pending-queue.ts"() { + init_git_error(); + init_git_logger(); + _TasksPendingQueue = class { + constructor(logLabel = "GitExecutor") { + this.logLabel = logLabel; + this._queue = /* @__PURE__ */ new Map(); + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = _TasksPendingQueue.getName(task.commands[0]); + const logger = createLogger(this.logLabel, name); + return { + task, + logger, + name + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger("Adding task to the queue, commands = %o", task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger.info(`Failed %o`, err); + logger(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } else { + logger.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new GitError(void 0, "TasksPendingQueue: attempt called for an unknown task"); + } + progress.logger("Starting task"); + return progress; + } + static getName(name = "empty") { + return `task:${name}:${++_TasksPendingQueue.counter}`; + } + }; + TasksPendingQueue = _TasksPendingQueue; + TasksPendingQueue.counter = 0; + } +}); +function pluginContext(task, commands) { + return { + method: first(task.commands) || "", + commands + }; +} +function onErrorReceived(target, logger) { + return (err) => { + logger(`[ERROR] child process exception %o`, err); + target.push(Buffer2.from(String(err.stack), "ascii")); + }; +} +function onDataReceived(target, name, logger, output) { + return (buffer2) => { + logger(`%s received %L bytes`, name, buffer2); + output(`%B`, buffer2); + target.push(buffer2); + }; +} +var GitExecutorChain; +var init_git_executor_chain = __esm2({ + "src/lib/runners/git-executor-chain.ts"() { + init_git_error(); + init_task(); + init_utils(); + init_tasks_pending_queue(); + GitExecutorChain = class { + constructor(_executor, _scheduler, _plugins) { + this._executor = _executor; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = Promise.resolve(); + this._queue = new TasksPendingQueue(); + } + get binary() { + return this._executor.binary; + } + get cwd() { + return this._cwd || this._executor.cwd; + } + set cwd(cwd) { + this._cwd = cwd; + } + get env() { + return this._executor.env; + } + get outputHandler() { + return this._executor.outputHandler; + } + chain() { + return this; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __async(this, null, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger } = this._queue.attempt(task); + return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger) : this.attemptRemoteTask(task, logger); + } catch (e) { + throw this.onFatalException(task, e); + } finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger) { + return __async(this, null, function* () { + const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); + const raw = yield this.gitResponse(task, this.binary, args, this.outputHandler, logger.step("SPAWN")); + const outputStreams = yield this.handleTaskData(task, args, raw, logger.step("HANDLE")); + logger(`passing response to task's parser as a %s`, task.format); + if (isBufferTask(task)) { + return callTaskParser(task.parser, outputStreams); + } + return callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger) { + return __async(this, null, function* () { + logger(`empty task bypassing child process to call to task's parser`); + return task.parser(this); + }); + } + handleTaskData(task, args, result, logger) { + const { exitCode, rejection, stdOut, stdErr } = result; + return new Promise((done, fail) => { + logger(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result)); + if (error && task.onError) { + logger.info(`exitCode=%s handling with custom error handler`); + return task.onError(result, error, (newStdOut) => { + logger.info(`custom error handler treated as success`); + logger(`custom error returned a %s`, objectToString(newStdOut)); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer2.concat(newStdOut) : newStdOut, Buffer2.concat(stdErr))); + }, fail); + } + if (error) { + logger.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); + return fail(error); + } + logger.info(`retrieving task output complete`); + done(new GitOutputStreams(Buffer2.concat(stdOut), Buffer2.concat(stdErr))); + }); + } + gitResponse(task, command, args, outputHandler, logger) { + return __async(this, null, function* () { + const outputLogger = logger.sibling("output"); + const spawnOptions = this._plugins.exec("spawn.options", { + cwd: this.cwd, + env: this.env, + windowsHide: true + }, pluginContext(task, task.commands)); + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + logger.info(`%s %o`, command, args); + logger("%O", spawnOptions); + let rejection = this._beforeSpawn(task, args); + if (rejection) { + return done({ + stdOut, + stdErr, + exitCode: 9901, + rejection + }); + } + this._plugins.exec("spawn.before", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + const spawned = (0, import_child_process.spawn)(command, args, spawnOptions); + spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger, outputLogger.step("stdOut"))); + spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger, outputLogger.step("stdErr"))); + spawned.on("error", onErrorReceived(stdErr, logger)); + if (outputHandler) { + logger(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + this._plugins.exec("spawn.after", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + spawned, + close(exitCode, reason) { + done({ + stdOut, + stdErr, + exitCode, + rejection: rejection || reason + }); + }, + kill(reason) { + if (spawned.killed) { + return; + } + rejection = reason; + spawned.kill("SIGINT"); + } + })); + }); + }); + } + _beforeSpawn(task, args) { + let rejection; + this._plugins.exec("spawn.before", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + return rejection; + } + }; + } +}); +var git_executor_exports = {}; +__export2(git_executor_exports, { + GitExecutor: () => GitExecutor +}); +var GitExecutor; +var init_git_executor = __esm2({ + "src/lib/runners/git-executor.ts"() { + init_git_executor_chain(); + GitExecutor = class { + constructor(binary = "git", cwd, _scheduler, _plugins) { + this.binary = binary; + this.cwd = cwd; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); + } + chain() { + return new GitExecutorChain(this, this._scheduler, this._plugins); + } + push(task) { + return this._chain.push(task); + } + }; + } +}); +function taskCallback(task, response, callback = NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError2 = (err) => { + if ((err == null ? void 0 : err.task) === task) { + callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, void 0); + } + }; + response.then(onSuccess, onError2); +} +function addDeprecationNoticeToError(err) { + let log2 = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log2 = NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; + } + all[name] = { + enumerable: false, + configurable: false, + get() { + log2(name); + return err.git[name]; + } + }; + return all; + } +} +var init_task_callback = __esm2({ + "src/lib/task-callback.ts"() { + init_git_response_error(); + init_utils(); + } +}); +function changeWorkingDirectoryTask(directory, root) { + return adhocExecTask((instance6) => { + if (!folderExists(directory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); + } + return (root || instance6).cwd = directory; + }); +} +var init_change_working_directory = __esm2({ + "src/lib/tasks/change-working-directory.ts"() { + init_utils(); + init_task(); + } +}); +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: "", + commit: "", + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0 + } + }; + return parseStringResponse(result, parsers, stdOut); +} +var parsers; +var init_parse_commit = __esm2({ + "src/lib/parsers/parse-commit.ts"() { + init_utils(); + parsers = [ + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch2, root, commit2]) => { + result.branch = branch2; + result.commit = commit2; + result.root = !!root; + }), + new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split("<"); + const email = parts.pop(); + if (!email || !email.includes("@")) { + return; + } + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join("<").trim() + }; + }), + new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines, 10) || 0; + if (direction === "-") { + result.summary.deletions = count; + } else if (direction === "+") { + result.summary.insertions = count; + } + }) + ]; + } +}); +var commit_exports = {}; +__export2(commit_exports, { + commitTask: () => commitTask, + default: () => commit_default +}); +function commitTask(message, files, customArgs) { + const commands = [ + "-c", + "core.abbrev=40", + "commit", + ...prefixedArray(message, "-m"), + ...files, + ...customArgs + ]; + return { + commands, + format: "utf-8", + parser: parseCommitResult + }; +} +function commit_default() { + return { + commit(message, ...rest) { + const next = trailingFunctionArgument(arguments); + const task = rejectDeprecatedSignatures(message) || commitTask(asArray(message), asArray(filterType(rest[0], filterStringOrStringArray, [])), [...filterType(rest[1], filterArray, []), ...getTrailingOptions(arguments, 0, true)]); + return this._runTask(task, next); + } + }; + function rejectDeprecatedSignatures(message) { + return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); + } +} +var init_commit = __esm2({ + "src/lib/tasks/commit.ts"() { + init_parse_commit(); + init_utils(); + init_task(); + } +}); +function hashObjectTask(filePath, write) { + const commands = ["hash-object", filePath]; + if (write) { + commands.push("-w"); + } + return straightThroughStringTask(commands, true); +} +var init_hash_object = __esm2({ + "src/lib/tasks/hash-object.ts"() { + init_task(); + } +}); +function parseInit(bare, path2, text2) { + const response = String(text2).trim(); + let result; + if (result = initResponseRegex.exec(response)) { + return new InitSummary(bare, path2, false, result[1]); + } + if (result = reInitResponseRegex.exec(response)) { + return new InitSummary(bare, path2, true, result[1]); + } + let gitDir = ""; + const tokens = response.split(" "); + while (tokens.length) { + const token = tokens.shift(); + if (token === "in") { + gitDir = tokens.join(" "); + break; + } + } + return new InitSummary(bare, path2, /^re/i.test(response), gitDir); +} +var InitSummary; +var initResponseRegex; +var reInitResponseRegex; +var init_InitSummary = __esm2({ + "src/lib/responses/InitSummary.ts"() { + InitSummary = class { + constructor(bare, path2, existing, gitDir) { + this.bare = bare; + this.path = path2; + this.existing = existing; + this.gitDir = gitDir; + } + }; + initResponseRegex = /^Init.+ repository in (.+)$/; + reInitResponseRegex = /^Rein.+ in (.+)$/; + } +}); +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path2, customArgs) { + const commands = ["init", ...customArgs]; + if (bare && !hasBareCommand(commands)) { + commands.splice(1, 0, bareCommand); + } + return { + commands, + format: "utf-8", + parser(text2) { + return parseInit(commands.includes("--bare"), path2, text2); + } + }; +} +var bareCommand; +var init_init = __esm2({ + "src/lib/tasks/init.ts"() { + init_InitSummary(); + bareCommand = "--bare"; + } +}); +function logFormatFromCommand(customArgs) { + for (let i = 0; i < customArgs.length; i++) { + const format = logFormatRegex.exec(customArgs[i]); + if (format) { + return `--${format[1]}`; + } + } + return ""; +} +function isLogFormat(customArg) { + return logFormatRegex.test(customArg); +} +var logFormatRegex; +var init_log_format = __esm2({ + "src/lib/args/log-format.ts"() { + logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; + } +}); +var DiffSummary; +var init_DiffSummary = __esm2({ + "src/lib/responses/DiffSummary.ts"() { + DiffSummary = class { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; + } + }; + } +}); +function getDiffParser(format = "") { + const parser3 = diffSummaryParsers[format]; + return (stdOut) => parseStringResponse(new DiffSummary(), parser3, stdOut, false); +} +var statParser; +var numStatParser; +var nameOnlyParser; +var nameStatusParser; +var diffSummaryParsers; +var init_parse_diff_summary = __esm2({ + "src/lib/parsers/parse-diff-summary.ts"() { + init_log_format(); + init_DiffSummary(); + init_utils(); + statParser = [ + new LineParser(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/, (result, [file, changes, alterations = ""]) => { + result.files.push({ + file: file.trim(), + changes: asNumber(changes), + insertions: alterations.replace(/[^+]/g, "").length, + deletions: alterations.replace(/[^-]/g, "").length, + binary: false + }); + }), + new LineParser(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/, (result, [file, before, after]) => { + result.files.push({ + file: file.trim(), + before: asNumber(before), + after: asNumber(after), + binary: true + }); + }), + new LineParser(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/, (result, [changed, summary]) => { + const inserted = /(\d+) i/.exec(summary); + const deleted = /(\d+) d/.exec(summary); + result.changed = asNumber(changed); + result.insertions = asNumber(inserted == null ? void 0 : inserted[1]); + result.deletions = asNumber(deleted == null ? void 0 : deleted[1]); + }) + ]; + numStatParser = [ + new LineParser(/(\d+)\t(\d+)\t(.+)$/, (result, [changesInsert, changesDelete, file]) => { + const insertions = asNumber(changesInsert); + const deletions = asNumber(changesDelete); + result.changed++; + result.insertions += insertions; + result.deletions += deletions; + result.files.push({ + file, + changes: insertions + deletions, + insertions, + deletions, + binary: false + }); + }), + new LineParser(/-\t-\t(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + after: 0, + before: 0, + binary: true + }); + }) + ]; + nameOnlyParser = [ + new LineParser(/(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + changes: 0, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + nameStatusParser = [ + new LineParser(/([ACDMRTUXB])\s*(.+)$/, (result, [_status, file]) => { + result.changed++; + result.files.push({ + file, + changes: 0, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + diffSummaryParsers = { + [""]: statParser, + ["--stat"]: statParser, + ["--numstat"]: numStatParser, + ["--name-status"]: nameStatusParser, + ["--name-only"]: nameOnlyParser + }; + } +}); +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index2) => { + line[field] = tokens[index2] || ""; + return line; + }, /* @__PURE__ */ Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames, logFormat = "") { + const parseDiffResult = getDiffParser(logFormat); + return function(stdOut) { + const all = toLinesWithContent(stdOut, true, START_BOUNDARY).map(function(item) { + const lineDetail = item.trim().split(COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parseDiffResult(lineDetail[1]); + } + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length + }; + }; +} +var START_BOUNDARY; +var COMMIT_BOUNDARY; +var SPLITTER; +var defaultFieldNames; +var init_parse_list_log_summary = __esm2({ + "src/lib/parsers/parse-list-log-summary.ts"() { + init_utils(); + init_parse_diff_summary(); + init_log_format(); + START_BOUNDARY = "\xF2\xF2\xF2\xF2\xF2\xF2 "; + COMMIT_BOUNDARY = " \xF2\xF2"; + SPLITTER = " \xF2 "; + defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + } +}); +var diff_exports = {}; +__export2(diff_exports, { + diffSummaryTask: () => diffSummaryTask, + validateLogFormatConfig: () => validateLogFormatConfig +}); +function diffSummaryTask(customArgs) { + let logFormat = logFormatFromCommand(customArgs); + const commands = ["diff"]; + if (logFormat === "") { + logFormat = "--stat"; + commands.push("--stat=4096"); + } + commands.push(...customArgs); + return validateLogFormatConfig(commands) || { + commands, + format: "utf-8", + parser: getDiffParser(logFormat) + }; +} +function validateLogFormatConfig(customArgs) { + const flags = customArgs.filter(isLogFormat); + if (flags.length > 1) { + return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${flags.join(",")}`); + } + if (flags.length && customArgs.includes("-z")) { + return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); + } +} +var init_diff = __esm2({ + "src/lib/tasks/diff.ts"() { + init_log_format(); + init_parse_diff_summary(); + init_task(); + } +}); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); + }); + return [fields, formatStr.join(splitter)]; +} +function userOptions(input) { + return Object.keys(input).reduce((out, key2) => { + if (!(key2 in excludeOptions)) { + out[key2] = input[key2]; + } + return out; + }, {}); +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = filterType(opt.splitter, filterString, SPLITTER); + const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { + hash: "%H", + date: opt.strictDate === false ? "%ai" : "%aI", + message: "%s", + refs: "%D", + body: opt.multiLine ? "%B" : "%b", + author_name: opt.mailMap !== false ? "%aN" : "%an", + author_email: opt.mailMap !== false ? "%aE" : "%ae" + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, + ...customArgs + ]; + const maxCount = opt.n || opt["max-count"] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from || opt.to) { + const rangeOperator = opt.symmetric !== false ? "..." : ".."; + suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); + } + if (filterString(opt.file)) { + suffix.push("--follow", opt.file); + } + appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [...command, ...suffix] + }; +} +function logTask(splitter, fields, customArgs) { + const parser3 = createListLogSummaryParser(splitter, fields, logFormatFromCommand(customArgs)); + return { + commands: ["log", ...customArgs], + format: "utf-8", + parser: parser3 + }; +} +function log_default() { + return { + log(...rest) { + const next = trailingFunctionArgument(arguments); + const options = parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)); + const task = rejectDeprecatedSignatures(...rest) || validateLogFormatConfig(options.commands) || createLogTask(options); + return this._runTask(task, next); + } + }; + function createLogTask(options) { + return logTask(options.splitter, options.fields, options.commands); + } + function rejectDeprecatedSignatures(from, to) { + return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + } +} +var excludeOptions; +var init_log = __esm2({ + "src/lib/tasks/log.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_utils(); + init_task(); + init_diff(); + excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { + excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; + excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; + excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; + excludeOptions2[excludeOptions2["n"] = 3] = "n"; + excludeOptions2[excludeOptions2["file"] = 4] = "file"; + excludeOptions2[excludeOptions2["format"] = 5] = "format"; + excludeOptions2[excludeOptions2["from"] = 6] = "from"; + excludeOptions2[excludeOptions2["to"] = 7] = "to"; + excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; + excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; + excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; + excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; + excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; + return excludeOptions2; + })(excludeOptions || {}); + } +}); +var MergeSummaryConflict; +var MergeSummaryDetail; +var init_MergeSummary = __esm2({ + "src/lib/responses/MergeSummary.ts"() { + MergeSummaryConflict = class { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } + }; + MergeSummaryDetail = class { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = "success"; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(", ")}`; + } + return "OK"; + } + }; + } +}); +var PullSummary; +var PullFailedSummary; +var init_PullSummary = __esm2({ + "src/lib/responses/PullSummary.ts"() { + PullSummary = class { + constructor() { + this.remoteMessages = { + all: [] + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0 + }; + } + }; + PullFailedSummary = class { + constructor() { + this.remote = ""; + this.hash = { + local: "", + remote: "" + }; + this.branch = { + local: "", + remote: "" + }; + this.message = ""; + } + toString() { + return this.message; + } + }; + } +}); +function objectEnumerationResult(remoteMessages) { + return remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }; +} +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: asNumber(count && count[1] || "0"), + delta: asNumber(delta && delta[1] || "0") + }; +} +var remoteMessagesObjectParsers; +var init_parse_remote_objects = __esm2({ + "src/lib/parsers/parse-remote-objects.ts"() { + init_utils(); + remoteMessagesObjectParsers = [ + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = asNumber(packReused); + }) + ]; + } +}); +function parseRemoteMessages(_stdOut, stdErr) { + return parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers2, stdErr); +} +var parsers2; +var RemoteMessageSummary; +var init_parse_remote_messages = __esm2({ + "src/lib/parsers/parse-remote-messages.ts"() { + init_utils(); + init_parse_remote_objects(); + parsers2 = [ + new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text2]) => { + result.remoteMessages.all.push(text2.trim()); + return false; + }), + ...remoteMessagesObjectParsers, + new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: asNumber(count), + summary, + url + }; + }) + ]; + RemoteMessageSummary = class { + constructor() { + this.all = []; + } + }; + } +}); +function parsePullErrorResult(stdOut, stdErr) { + const pullError = parseStringResponse(new PullFailedSummary(), errorParsers, [stdOut, stdErr]); + return pullError.message && pullError; +} +var FILE_UPDATE_REGEX; +var SUMMARY_REGEX; +var ACTION_REGEX; +var parsers3; +var errorParsers; +var parsePullDetail; +var parsePullResult; +var init_parse_pull = __esm2({ + "src/lib/parsers/parse-pull.ts"() { + init_PullSummary(); + init_utils(); + init_parse_remote_messages(); + FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; + SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; + ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; + parsers3 = [ + new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== void 0 || deletions !== void 0) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new LineParser(ACTION_REGEX, (result, [action, file]) => { + append(result.files, file); + append(action === "create" ? result.created : result.deleted, file); + }) + ]; + errorParsers = [ + new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), + new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), + new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { + result.branch.local = branchLocal; + result.hash.local = hashLocal; + result.branch.remote = branchRemote; + result.hash.remote = hashRemote; + }) + ]; + parsePullDetail = (stdOut, stdErr) => { + return parseStringResponse(new PullSummary(), parsers3, [stdOut, stdErr]); + }; + parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary(), parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); + }; + } +}); +var parsers4; +var parseMergeResult; +var parseMergeDetail; +var init_parse_merge = __esm2({ + "src/lib/parsers/parse-merge.ts"() { + init_MergeSummary(); + init_utils(); + init_parse_pull(); + parsers4 = [ + new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file)); + }), + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef2]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef: deleteRef2 })); + }), + new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, null)); + }), + new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }) + ]; + parseMergeResult = (stdOut, stdErr) => { + return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); + }; + parseMergeDetail = (stdOut) => { + return parseStringResponse(new MergeSummaryDetail(), parsers4, stdOut); + }; + } +}); +function mergeTask(customArgs) { + if (!customArgs.length) { + return configurationErrorTask("Git.merge requires at least one option"); + } + return { + commands: ["merge", ...customArgs], + format: "utf-8", + parser(stdOut, stdErr) { + const merge2 = parseMergeResult(stdOut, stdErr); + if (merge2.failed) { + throw new GitResponseError(merge2); + } + return merge2; + } + }; +} +var init_merge = __esm2({ + "src/lib/tasks/merge.ts"() { + init_git_response_error(); + init_parse_merge(); + init_task(); + } +}); +function pushResultPushedItem(local, remote, status2) { + const deleted = status2.includes("deleted"); + const tag2 = status2.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status2.includes("new"); + return { + deleted, + tag: tag2, + branch: !tag2, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote + }; +} +var parsers5; +var parsePushResult; +var parsePushDetail; +var init_parse_push = __esm2({ + "src/lib/parsers/parse-push.ts"() { + init_utils(); + init_parse_remote_messages(); + parsers5 = [ + new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = __spreadProps(__spreadValues({}, result.ref || {}), { + local + }); + }), + new LineParser(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = __spreadProps(__spreadValues({}, result.branch || {}), { + local, + remote, + remoteName + }); + }), + new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { + result.update = { + head: { + local, + remote + }, + hash: { + from, + to + } + }; + }) + ]; + parsePushResult = (stdOut, stdErr) => { + const pushDetail = parsePushDetail(stdOut, stdErr); + const responseDetail = parseRemoteMessages(stdOut, stdErr); + return __spreadValues(__spreadValues({}, pushDetail), responseDetail); + }; + parsePushDetail = (stdOut, stdErr) => { + return parseStringResponse({ pushed: [] }, parsers5, [stdOut, stdErr]); + }; + } +}); +var push_exports = {}; +__export2(push_exports, { + pushTagsTask: () => pushTagsTask, + pushTask: () => pushTask +}); +function pushTagsTask(ref = {}, customArgs) { + append(customArgs, "--tags"); + return pushTask(ref, customArgs); +} +function pushTask(ref = {}, customArgs) { + const commands = ["push", ...customArgs]; + if (ref.branch) { + commands.splice(1, 0, ref.branch); + } + if (ref.remote) { + commands.splice(1, 0, ref.remote); + } + remove2(commands, "-v"); + append(commands, "--verbose"); + append(commands, "--porcelain"); + return { + commands, + format: "utf-8", + parser: parsePushResult + }; +} +var init_push = __esm2({ + "src/lib/tasks/push.ts"() { + init_parse_push(); + init_utils(); + } +}); +var fromPathRegex; +var FileStatusSummary; +var init_FileStatusSummary = __esm2({ + "src/lib/responses/FileStatusSummary.ts"() { + fromPathRegex = /^(.+) -> (.+)$/; + FileStatusSummary = class { + constructor(path2, index2, working_dir) { + this.path = path2; + this.index = index2; + this.working_dir = working_dir; + if (index2 + working_dir === "R") { + const detail = fromPathRegex.exec(path2) || [null, path2, path2]; + this.from = detail[1] || ""; + this.path = detail[2] || ""; + } + } + }; + } +}); +function renamedFile(line) { + const [to, from] = line.split(NULL); + return { + from: from || to, + to + }; +} +function parser2(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map((y) => parser2(indexX, y, (result, file) => append(result.conflicted, file))); +} +function splitLine(result, lineStr) { + const trimmed2 = lineStr.trim(); + switch (" ") { + case trimmed2.charAt(2): + return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); + case trimmed2.charAt(1): + return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); + default: + return; + } + function data(index2, workingDir, path2) { + const raw = `${index2}${workingDir}`; + const handler = parsers6.get(raw); + if (handler) { + handler(result, path2); + } + if (raw !== "##" && raw !== "!!") { + result.files.push(new FileStatusSummary(path2.replace(/\0.+$/, ""), index2, workingDir)); + } + } +} +var StatusSummary; +var parsers6; +var parseStatusSummary; +var init_StatusSummary = __esm2({ + "src/lib/responses/StatusSummary.ts"() { + init_utils(); + init_FileStatusSummary(); + StatusSummary = class { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.ignored = void 0; + this.modified = []; + this.renamed = []; + this.files = []; + this.staged = []; + this.ahead = 0; + this.behind = 0; + this.current = null; + this.tracking = null; + this.detached = false; + this.isClean = () => { + return !this.files.length; + }; + } + }; + parsers6 = new Map([ + parser2(" ", "A", (result, file) => append(result.created, file)), + parser2(" ", "D", (result, file) => append(result.deleted, file)), + parser2(" ", "M", (result, file) => append(result.modified, file)), + parser2("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), + parser2("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), + parser2("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), + parser2("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("R", " ", (result, file) => { + append(result.renamed, renamedFile(file)); + }), + parser2("R", "M", (result, file) => { + const renamed = renamedFile(file); + append(result.renamed, renamed); + append(result.modified, renamed.to); + }), + parser2("!", "!", (_result, _file) => { + append(_result.ignored = _result.ignored || [], _file); + }), + parser2("?", "?", (result, file) => append(result.not_added, file)), + ...conflicts("A", "A", "U"), + ...conflicts("D", "D", "U"), + ...conflicts("U", "A", "D", "U"), + [ + "##", + (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); + } + ] + ]); + parseStatusSummary = function(text2) { + const lines = text2.split(NULL); + const status2 = new StatusSummary(); + for (let i = 0, l = lines.length; i < l; ) { + let line = lines[i++].trim(); + if (!line) { + continue; + } + if (line.charAt(0) === "R") { + line += NULL + (lines[i++] || ""); + } + splitLine(status2, line); + } + return status2; + }; + } +}); +function statusTask(customArgs) { + const commands = [ + "status", + "--porcelain", + "-b", + "-u", + "--null", + ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) + ]; + return { + format: "utf-8", + commands, + parser(text2) { + return parseStatusSummary(text2); + } + }; +} +var ignoredOptions; +var init_status = __esm2({ + "src/lib/tasks/status.ts"() { + init_StatusSummary(); + ignoredOptions = ["--null", "-z"]; + } +}); +function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { + return Object.defineProperty({ + major, + minor, + patch, + agent, + installed + }, "toString", { + value() { + return `${this.major}.${this.minor}.${this.patch}`; + }, + configurable: false, + enumerable: false + }); +} +function notInstalledResponse() { + return versionResponse(0, 0, 0, "", false); +} +function version_default() { + return { + version() { + return this._runTask({ + commands: ["--version"], + format: "utf-8", + parser: versionParser, + onError(result, error, done, fail) { + if (result.exitCode === -2) { + return done(Buffer2.from(NOT_INSTALLED)); + } + fail(error); + } + }); + } + }; +} +function versionParser(stdOut) { + if (stdOut === NOT_INSTALLED) { + return notInstalledResponse(); + } + return parseStringResponse(versionResponse(0, 0, 0, stdOut), parsers7, stdOut); +} +var NOT_INSTALLED; +var parsers7; +var init_version = __esm2({ + "src/lib/tasks/version.ts"() { + init_utils(); + NOT_INSTALLED = "installed=false"; + parsers7 = [ + new LineParser(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), asNumber(patch), agent)); + }), + new LineParser(/version (\d+)\.(\d+)\.(\D+)(.+)?$/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), patch, agent)); + }) + ]; + } +}); +var simple_git_api_exports = {}; +__export2(simple_git_api_exports, { + SimpleGitApi: () => SimpleGitApi +}); +var SimpleGitApi; +var init_simple_git_api = __esm2({ + "src/lib/simple-git-api.ts"() { + init_task_callback(); + init_change_working_directory(); + init_commit(); + init_config(); + init_grep(); + init_hash_object(); + init_init(); + init_log(); + init_merge(); + init_push(); + init_status(); + init_task(); + init_version(); + init_utils(); + SimpleGitApi = class { + constructor(_executor) { + this._executor = _executor; + } + _runTask(task, then) { + const chain = this._executor.chain(); + const promise2 = chain.push(task); + if (then) { + taskCallback(task, promise2, then); + } + return Object.create(this, { + then: { value: promise2.then.bind(promise2) }, + catch: { value: promise2.catch.bind(promise2) }, + _executor: { value: chain } + }); + } + add(files) { + return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); + } + cwd(directory) { + const next = trailingFunctionArgument(arguments); + if (typeof directory === "string") { + return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); + } + if (typeof (directory == null ? void 0 : directory.path) === "string") { + return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || void 0), next); + } + return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); + } + hashObject(path2, write) { + return this._runTask(hashObjectTask(path2, write === true), trailingFunctionArgument(arguments)); + } + init(bare) { + return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + merge() { + return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + mergeFromTo(remote, branch2) { + if (!(filterString(remote) && filterString(branch2))) { + return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); + } + return this._runTask(mergeTask([remote, branch2, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); + } + outputHandler(handler) { + this._executor.outputHandler = handler; + return this; + } + push() { + const task = pushTask({ + remote: filterType(arguments[0], filterString), + branch: filterType(arguments[1], filterString) + }, getTrailingOptions(arguments)); + return this._runTask(task, trailingFunctionArgument(arguments)); + } + stash() { + return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + status() { + return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + }; + Object.assign(SimpleGitApi.prototype, commit_default(), config_default(), grep_default(), log_default(), version_default()); + } +}); +var scheduler_exports = {}; +__export2(scheduler_exports, { + Scheduler: () => Scheduler +}); +var createScheduledTask; +var Scheduler; +var init_scheduler = __esm2({ + "src/lib/runners/scheduler.ts"() { + init_utils(); + init_git_logger(); + createScheduledTask = (() => { + let id = 0; + return () => { + id++; + const { promise: promise2, done } = (0, import_promise_deferred.createDeferred)(); + return { + promise: promise2, + done, + id + }; + }; + })(); + Scheduler = class { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.logger = createLogger("", "scheduler"); + this.pending = []; + this.running = []; + this.logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; + } + const task = append(this.running, this.pending.shift()); + this.logger(`Attempting id=%s`, task.id); + task.done(() => { + this.logger(`Completing id=`, task.id); + remove2(this.running, task); + this.schedule(); + }); + } + next() { + const { promise: promise2, id } = append(this.pending, createScheduledTask()); + this.logger(`Scheduling id=%s`, id); + this.schedule(); + return promise2; + } + }; + } +}); +var apply_patch_exports = {}; +__export2(apply_patch_exports, { + applyPatchTask: () => applyPatchTask +}); +function applyPatchTask(patches, customArgs) { + return straightThroughStringTask(["apply", ...customArgs, ...patches]); +} +var init_apply_patch = __esm2({ + "src/lib/tasks/apply-patch.ts"() { + init_task(); + } +}); +function branchDeletionSuccess(branch2, hash2) { + return { + branch: branch2, + hash: hash2, + success: true + }; +} +function branchDeletionFailure(branch2) { + return { + branch: branch2, + hash: null, + success: false + }; +} +var BranchDeletionBatch; +var init_BranchDeleteSummary = __esm2({ + "src/lib/responses/BranchDeleteSummary.ts"() { + BranchDeletionBatch = class { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } + }; + } +}); +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === 1 && deleteErrorRegex.test(data); +} +var deleteSuccessRegex; +var deleteErrorRegex; +var parsers8; +var parseBranchDeletions; +var init_parse_branch_delete = __esm2({ + "src/lib/parsers/parse-branch-delete.ts"() { + init_BranchDeleteSummary(); + init_utils(); + deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; + deleteErrorRegex = /^error[^']+'([^']+)'/m; + parsers8 = [ + new LineParser(deleteSuccessRegex, (result, [branch2, hash2]) => { + const deletion = branchDeletionSuccess(branch2, hash2); + result.all.push(deletion); + result.branches[branch2] = deletion; + }), + new LineParser(deleteErrorRegex, (result, [branch2]) => { + const deletion = branchDeletionFailure(branch2); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch2] = deletion; + }) + ]; + parseBranchDeletions = (stdOut, stdErr) => { + return parseStringResponse(new BranchDeletionBatch(), parsers8, [stdOut, stdErr]); + }; + } +}); +var BranchSummaryResult; +var init_BranchSummary = __esm2({ + "src/lib/responses/BranchSummary.ts"() { + BranchSummaryResult = class { + constructor() { + this.all = []; + this.branches = {}; + this.current = ""; + this.detached = false; + } + push(status2, detached, name, commit2, label) { + if (status2 === "*") { + this.detached = detached; + this.current = name; + } + this.all.push(name); + this.branches[name] = { + current: status2 === "*", + linkedWorkTree: status2 === "+", + name, + commit: commit2, + label + }; + } + }; + } +}); +function branchStatus(input) { + return input ? input.charAt(0) : ""; +} +function parseBranchSummary(stdOut) { + return parseStringResponse(new BranchSummaryResult(), parsers9, stdOut); +} +var parsers9; +var init_parse_branch = __esm2({ + "src/lib/parsers/parse-branch.ts"() { + init_BranchSummary(); + init_utils(); + parsers9 = [ + new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), true, name, commit2, label); + }), + new LineParser(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), false, name, commit2, label); + }) + ]; + } +}); +var branch_exports = {}; +__export2(branch_exports, { + branchLocalTask: () => branchLocalTask, + branchTask: () => branchTask, + containsDeleteBranchCommand: () => containsDeleteBranchCommand, + deleteBranchTask: () => deleteBranchTask, + deleteBranchesTask: () => deleteBranchesTask +}); +function containsDeleteBranchCommand(commands) { + const deleteCommands = ["-d", "-D", "--delete"]; + return commands.some((command) => deleteCommands.includes(command)); +} +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands = ["branch", ...customArgs]; + if (commands.length === 1) { + commands.push("-a"); + } + if (!commands.includes("-v")) { + commands.splice(1, 0, "-v"); + } + return { + format: "utf-8", + commands, + parser(stdOut, stdErr) { + if (isDelete) { + return parseBranchDeletions(stdOut, stdErr).all[0]; + } + return parseBranchSummary(stdOut); + } + }; +} +function branchLocalTask() { + const parser3 = parseBranchSummary; + return { + format: "utf-8", + commands: ["branch", "-v"], + parser: parser3 + }; +} +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr); + }, + onError({ exitCode, stdOut }, error, done, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + done(stdOut); + } + }; +} +function deleteBranchTask(branch2, forceDelete = false) { + const task = { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch2], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr).branches[branch2]; + }, + onError({ exitCode, stdErr, stdOut }, error, _, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); + } + }; + return task; +} +var init_branch = __esm2({ + "src/lib/tasks/branch.ts"() { + init_git_response_error(); + init_parse_branch_delete(); + init_parse_branch(); + init_utils(); + } +}); +var parseCheckIgnore; +var init_CheckIgnore = __esm2({ + "src/lib/responses/CheckIgnore.ts"() { + parseCheckIgnore = (text2) => { + return text2.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); + }; + } +}); +var check_ignore_exports = {}; +__export2(check_ignore_exports, { + checkIgnoreTask: () => checkIgnoreTask +}); +function checkIgnoreTask(paths) { + return { + commands: ["check-ignore", ...paths], + format: "utf-8", + parser: parseCheckIgnore + }; +} +var init_check_ignore = __esm2({ + "src/lib/tasks/check-ignore.ts"() { + init_CheckIgnore(); + } +}); +var clone_exports = {}; +__export2(clone_exports, { + cloneMirrorTask: () => cloneMirrorTask, + cloneTask: () => cloneTask +}); +function disallowedCommand(command) { + return /^--upload-pack(=|$)/.test(command); +} +function cloneTask(repo, directory, customArgs) { + const commands = ["clone", ...customArgs]; + filterString(repo) && commands.push(repo); + filterString(directory) && commands.push(directory); + const banned = commands.find(disallowedCommand); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return straightThroughStringTask(commands); +} +function cloneMirrorTask(repo, directory, customArgs) { + append(customArgs, "--mirror"); + return cloneTask(repo, directory, customArgs); +} +var init_clone = __esm2({ + "src/lib/tasks/clone.ts"() { + init_task(); + init_utils(); + } +}); +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [], + updated: [], + deleted: [] + }; + return parseStringResponse(result, parsers10, [stdOut, stdErr]); +} +var parsers10; +var init_parse_fetch = __esm2({ + "src/lib/parsers/parse-fetch.ts"() { + init_utils(); + parsers10 = [ + new LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking + }); + }), + new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking + }); + }), + new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { + result.deleted.push({ + tracking + }); + }), + new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from, to, name, tracking]) => { + result.updated.push({ + name, + tracking, + to, + from + }); + }) + ]; + } +}); +var fetch_exports = {}; +__export2(fetch_exports, { + fetchTask: () => fetchTask +}); +function disallowedCommand2(command) { + return /^--upload-pack(=|$)/.test(command); +} +function fetchTask(remote, branch2, customArgs) { + const commands = ["fetch", ...customArgs]; + if (remote && branch2) { + commands.push(remote, branch2); + } + const banned = commands.find(disallowedCommand2); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return { + commands, + format: "utf-8", + parser: parseFetchResult + }; +} +var init_fetch = __esm2({ + "src/lib/tasks/fetch.ts"() { + init_parse_fetch(); + init_task(); + } +}); +function parseMoveResult(stdOut) { + return parseStringResponse({ moves: [] }, parsers11, stdOut); +} +var parsers11; +var init_parse_move = __esm2({ + "src/lib/parsers/parse-move.ts"() { + init_utils(); + parsers11 = [ + new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { + result.moves.push({ from, to }); + }) + ]; + } +}); +var move_exports = {}; +__export2(move_exports, { + moveTask: () => moveTask +}); +function moveTask(from, to) { + return { + commands: ["mv", "-v", ...asArray(from), to], + format: "utf-8", + parser: parseMoveResult + }; +} +var init_move = __esm2({ + "src/lib/tasks/move.ts"() { + init_parse_move(); + init_utils(); + } +}); +var pull_exports = {}; +__export2(pull_exports, { + pullTask: () => pullTask +}); +function pullTask(remote, branch2, customArgs) { + const commands = ["pull", ...customArgs]; + if (remote && branch2) { + commands.splice(1, 0, remote, branch2); + } + return { + commands, + format: "utf-8", + parser(stdOut, stdErr) { + return parsePullResult(stdOut, stdErr); + }, + onError(result, _error, _done, fail) { + const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); + if (pullError) { + return fail(new GitResponseError(pullError)); + } + fail(_error); + } + }; +} +var init_pull = __esm2({ + "src/lib/tasks/pull.ts"() { + init_git_response_error(); + init_parse_pull(); + init_utils(); + } +}); +function parseGetRemotes(text2) { + const remotes = {}; + forEach(text2, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +function parseGetRemotesVerbose(text2) { + const remotes = {}; + forEach(text2, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name, + refs: { fetch: "", push: "" } + }; + } + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; + } + }); + return Object.values(remotes); +} +function forEach(text2, handler) { + forEachLineWithContent(text2, (line) => handler(line.split(/\s+/))); +} +var init_GetRemoteSummary = __esm2({ + "src/lib/responses/GetRemoteSummary.ts"() { + init_utils(); + } +}); +var remote_exports = {}; +__export2(remote_exports, { + addRemoteTask: () => addRemoteTask, + getRemotesTask: () => getRemotesTask, + listRemotesTask: () => listRemotesTask, + remoteTask: () => remoteTask, + removeRemoteTask: () => removeRemoteTask +}); +function addRemoteTask(remoteName, remoteRepo, customArgs = []) { + return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); +} +function getRemotesTask(verbose) { + const commands = ["remote"]; + if (verbose) { + commands.push("-v"); + } + return { + commands, + format: "utf-8", + parser: verbose ? parseGetRemotesVerbose : parseGetRemotes + }; +} +function listRemotesTask(customArgs = []) { + const commands = [...customArgs]; + if (commands[0] !== "ls-remote") { + commands.unshift("ls-remote"); + } + return straightThroughStringTask(commands); +} +function remoteTask(customArgs = []) { + const commands = [...customArgs]; + if (commands[0] !== "remote") { + commands.unshift("remote"); + } + return straightThroughStringTask(commands); +} +function removeRemoteTask(remoteName) { + return straightThroughStringTask(["remote", "remove", remoteName]); +} +var init_remote = __esm2({ + "src/lib/tasks/remote.ts"() { + init_GetRemoteSummary(); + init_task(); + } +}); +var stash_list_exports = {}; +__export2(stash_list_exports, { + stashListTask: () => stashListTask +}); +function stashListTask(opt = {}, customArgs) { + const options = parseLogOptions(opt); + const commands = ["stash", "list", ...options.commands, ...customArgs]; + const parser3 = createListLogSummaryParser(options.splitter, options.fields, logFormatFromCommand(commands)); + return validateLogFormatConfig(commands) || { + commands, + format: "utf-8", + parser: parser3 + }; +} +var init_stash_list = __esm2({ + "src/lib/tasks/stash-list.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_diff(); + init_log(); + } +}); +var sub_module_exports = {}; +__export2(sub_module_exports, { + addSubModuleTask: () => addSubModuleTask, + initSubModuleTask: () => initSubModuleTask, + subModuleTask: () => subModuleTask, + updateSubModuleTask: () => updateSubModuleTask +}); +function addSubModuleTask(repo, path2) { + return subModuleTask(["add", repo, path2]); +} +function initSubModuleTask(customArgs) { + return subModuleTask(["init", ...customArgs]); +} +function subModuleTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "submodule") { + commands.unshift("submodule"); + } + return straightThroughStringTask(commands); +} +function updateSubModuleTask(customArgs) { + return subModuleTask(["update", ...customArgs]); +} +var init_sub_module = __esm2({ + "src/lib/tasks/sub-module.ts"() { + init_task(); + } +}); +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; + } + return aIsNum ? sorted(a, b) : 0; +} +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === "string") { + return parseInt(input.replace(/^\D+/g, ""), 10) || 0; + } + return 0; +} +var TagList; +var parseTagList; +var init_TagList = __esm2({ + "src/lib/responses/TagList.ts"() { + TagList = class { + constructor(all, latest) { + this.all = all; + this.latest = latest; + } + }; + parseTagList = function(data, customSort = false) { + const tags = data.split("\n").map(trimmed).filter(Boolean); + if (!customSort) { + tags.sort(function(tagA, tagB) { + const partsA = tagA.split("."); + const partsB = tagB.split("."); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) { + const diff2 = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff2) { + return diff2; + } + } + return 0; + }); + } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag2) => tag2.indexOf(".") >= 0); + return new TagList(tags, latest); + }; + } +}); +var tag_exports = {}; +__export2(tag_exports, { + addAnnotatedTagTask: () => addAnnotatedTagTask, + addTagTask: () => addTagTask, + tagListTask: () => tagListTask +}); +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: "utf-8", + commands: ["tag", "-l", ...customArgs], + parser(text2) { + return parseTagList(text2, hasCustomSort); + } + }; +} +function addTagTask(name) { + return { + format: "utf-8", + commands: ["tag", name], + parser() { + return { name }; + } + }; +} +function addAnnotatedTagTask(name, tagMessage) { + return { + format: "utf-8", + commands: ["tag", "-a", "-m", tagMessage, name], + parser() { + return { name }; + } + }; +} +var init_tag = __esm2({ + "src/lib/tasks/tag.ts"() { + init_TagList(); + } +}); +var require_git = __commonJS2({ + "src/git.js"(exports, module2) { + var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports)); + var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports)); + var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS(scheduler_exports)); + var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS(task_exports)); + var { + asArray: asArray2, + filterArray: filterArray2, + filterPrimitives: filterPrimitives2, + filterString: filterString2, + filterStringOrStringArray: filterStringOrStringArray2, + filterType: filterType2, + getTrailingOptions: getTrailingOptions2, + trailingFunctionArgument: trailingFunctionArgument2, + trailingOptionsArgument: trailingOptionsArgument2 + } = (init_utils(), __toCommonJS(utils_exports)); + var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports)); + var { + branchTask: branchTask2, + branchLocalTask: branchLocalTask2, + deleteBranchesTask: deleteBranchesTask2, + deleteBranchTask: deleteBranchTask2 + } = (init_branch(), __toCommonJS(branch_exports)); + var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports)); + var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports)); + var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports)); + var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS(clean_exports)); + var { commitTask: commitTask2 } = (init_commit(), __toCommonJS(commit_exports)); + var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS(diff_exports)); + var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS(fetch_exports)); + var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports)); + var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports)); + var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports)); + var { + addRemoteTask: addRemoteTask2, + getRemotesTask: getRemotesTask2, + listRemotesTask: listRemotesTask2, + remoteTask: remoteTask2, + removeRemoteTask: removeRemoteTask2 + } = (init_remote(), __toCommonJS(remote_exports)); + var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports)); + var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports)); + var { + addSubModuleTask: addSubModuleTask2, + initSubModuleTask: initSubModuleTask2, + subModuleTask: subModuleTask2, + updateSubModuleTask: updateSubModuleTask2 + } = (init_sub_module(), __toCommonJS(sub_module_exports)); + var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports)); + var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports)); + function Git2(options, plugins) { + this._executor = new GitExecutor2(options.binary, options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + this._trimmed = options.trimmed; + } + (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; + Git2.prototype.customBinary = function(command) { + this._executor.binary = command; + return this; + }; + Git2.prototype.env = function(name, value) { + if (arguments.length === 1 && typeof name === "object") { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + return this; + }; + Git2.prototype.stashList = function(options) { + return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); + }; + function createCloneTask(api, task, repoPath, localPath) { + if (typeof repoPath !== "string") { + return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); + } + return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); + } + Git2.prototype.clone = function() { + return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mirror = function() { + return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mv = function(from, to) { + return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLatestTag = function(then) { + var git = this; + return this.pull(function() { + git.tags(function(err, tags) { + git.checkout(tags.latest, then); + }); + }); + }; + Git2.prototype.pull = function(remote, branch2, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.fetch = function(remote, branch2) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.silent = function(silence) { + console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); + return this; + }; + Git2.prototype.tags = function(options, then) { + return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rebase = function() { + return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.reset = function(mode) { + return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revert = function(commit2) { + const next = trailingFunctionArgument2(arguments); + if (typeof commit2 !== "string") { + return this._runTask(configurationErrorTask2("Commit must be a string"), next); + } + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit2]), next); + }; + Git2.prototype.addTag = function(name) { + const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { + return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkout = function() { + const commands = ["checkout", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutBranch = function(branchName, startPoint, then) { + return this.checkout(["-b", branchName, startPoint], trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLocalBranch = function(branchName, then) { + return this.checkout(["-b", branchName], trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { + return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { + return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branch = function(options, then) { + return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branchLocal = function(then) { + return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.raw = function(commands) { + const createRestCommands = !Array.isArray(commands); + const command = [].slice.call(createRestCommands ? arguments : commands, 0); + for (let i = 0; i < command.length && createRestCommands; i++) { + if (!filterPrimitives2(command[i])) { + command.splice(i, command.length - i); + break; + } + } + command.push(...getTrailingOptions2(arguments, 0, true)); + var next = trailingFunctionArgument2(arguments); + if (!command.length) { + return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); + } + return this._runTask(straightThroughStringTask2(command, this._trimmed), next); + }; + Git2.prototype.submoduleAdd = function(repo, path2, then) { + return this._runTask(addSubModuleTask2(repo, path2), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleUpdate = function(args, then) { + return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleInit = function(args, then) { + return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.subModule = function(options, then) { + return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.listRemote = function() { + return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { + return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.removeRemote = function(remoteName, then) { + return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.getRemotes = function(verbose, then) { + return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.remote = function(options, then) { + return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.tag = function(options, then) { + const command = getTrailingOptions2(arguments); + if (command[0] !== "tag") { + command.unshift("tag"); + } + return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.updateServerInfo = function(then) { + return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.pushTags = function(remote, then) { + const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rm = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rmKeepLocal = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.catFile = function(options, then) { + return this._catFile("utf-8", arguments); + }; + Git2.prototype.binaryCatFile = function() { + return this._catFile("buffer", arguments); + }; + Git2.prototype._catFile = function(format, args) { + var handler = trailingFunctionArgument2(args); + var command = ["cat-file"]; + var options = args[0]; + if (typeof options === "string") { + return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); + } + if (Array.isArray(options)) { + command.push.apply(command, options); + } + const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); + return this._runTask(task, handler); + }; + Git2.prototype.diff = function(options, then) { + const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.diffSummary = function() { + return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revparse = function() { + const commands = ["rev-parse", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands, true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.show = function(options, then) { + return this._runTask(straightThroughStringTask2(["show", ...getTrailingOptions2(arguments, 1)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.clean = function(mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray2(mode); + const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; + const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.exec = function(then) { + const task = { + commands: [], + format: "utf-8", + parser() { + if (typeof then === "function") { + then(); + } + } + }; + return this._runTask(task); + }; + Git2.prototype.clearQueue = function() { + return this; + }; + Git2.prototype.checkIgnore = function(pathnames, then) { + return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkIsRepo = function(checkType, then) { + return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); + }; + module2.exports = Git2; + } +}); +init_git_error(); +var GitConstructError = class extends GitError { + constructor(config, message) { + super(void 0, message); + this.config = config; + } +}; +init_git_error(); +init_git_error(); +var GitPluginError = class extends GitError { + constructor(task, plugin, message) { + super(task, message); + this.task = task; + this.plugin = plugin; + Object.setPrototypeOf(this, new.target.prototype); + } +}; +init_git_response_error(); +init_task_configuration_error(); +init_check_is_repo(); +init_clean(); +init_config(); +init_grep(); +init_reset(); +function abortPlugin(signal) { + if (!signal) { + return; + } + const onSpawnAfter = { + type: "spawn.after", + action(_data, context) { + function kill() { + context.kill(new GitPluginError(void 0, "abort", "Abort signal received")); + } + signal.addEventListener("abort", kill); + context.spawned.on("close", () => signal.removeEventListener("abort", kill)); + } + }; + const onSpawnBefore = { + type: "spawn.before", + action(_data, context) { + if (signal.aborted) { + context.kill(new GitPluginError(void 0, "abort", "Abort already signaled")); + } + } + }; + return [onSpawnBefore, onSpawnAfter]; +} +function isConfigSwitch(arg) { + return typeof arg === "string" && arg.trim().toLowerCase() === "-c"; +} +function preventProtocolOverride(arg, next) { + if (!isConfigSwitch(arg)) { + return; + } + if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { + return; + } + throw new GitPluginError(void 0, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); +} +function blockUnsafeOperationsPlugin({ + allowUnsafeProtocolOverride = false +} = {}) { + return { + type: "spawn.args", + action(args, _context) { + args.forEach((current, index2) => { + const next = index2 < args.length ? args[index2 + 1] : ""; + allowUnsafeProtocolOverride || preventProtocolOverride(current, next); + }); + return args; + } + }; +} +init_utils(); +function commandConfigPrefixingPlugin(configuration) { + const prefix = prefixedArray(configuration, "-c"); + return { + type: "spawn.args", + action(data) { + return [...prefix, ...data]; + } + }; +} +init_utils(); +var never = (0, import_promise_deferred2.deferred)().promise; +function completionDetectionPlugin({ + onClose = true, + onExit = 50 +} = {}) { + function createEvents() { + let exitCode = -1; + const events = { + close: (0, import_promise_deferred2.deferred)(), + closeTimeout: (0, import_promise_deferred2.deferred)(), + exit: (0, import_promise_deferred2.deferred)(), + exitTimeout: (0, import_promise_deferred2.deferred)() + }; + const result = Promise.race([ + onClose === false ? never : events.closeTimeout.promise, + onExit === false ? never : events.exitTimeout.promise + ]); + configureTimeout(onClose, events.close, events.closeTimeout); + configureTimeout(onExit, events.exit, events.exitTimeout); + return { + close(code) { + exitCode = code; + events.close.done(); + }, + exit(code) { + exitCode = code; + events.exit.done(); + }, + get exitCode() { + return exitCode; + }, + result + }; + } + function configureTimeout(flag, event, timeout) { + if (flag === false) { + return; + } + (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); + } + return { + type: "spawn.after", + action(_0, _1) { + return __async(this, arguments, function* (_data, { spawned, close }) { + var _a2, _b; + const events = createEvents(); + let deferClose = true; + let quickClose = () => void (deferClose = false); + (_a2 = spawned.stdout) == null ? void 0 : _a2.on("data", quickClose); + (_b = spawned.stderr) == null ? void 0 : _b.on("data", quickClose); + spawned.on("error", quickClose); + spawned.on("close", (code) => events.close(code)); + spawned.on("exit", (code) => events.exit(code)); + try { + yield events.result; + if (deferClose) { + yield delay(50); + } + close(events.exitCode); + } catch (err) { + close(events.exitCode, err); + } + }); + } + }; +} +init_git_error(); +function isTaskError(result) { + return !!(result.exitCode && result.stdErr.length); +} +function getErrorMessage(result) { + return Buffer2.concat([...result.stdOut, ...result.stdErr]); +} +function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { + return (error, result) => { + if (!overwrite && error || !isError(result)) { + return error; + } + return errorMessage(result); + }; +} +function errorDetectionPlugin(config) { + return { + type: "task.error", + action(data, context) { + const error = config(data.error, { + stdErr: context.stdErr, + stdOut: context.stdOut, + exitCode: context.exitCode + }); + if (Buffer2.isBuffer(error)) { + return { error: new GitError(void 0, error.toString("utf-8")) }; + } + return { + error + }; + } + }; +} +init_utils(); +var PluginStore = class { + constructor() { + this.plugins = /* @__PURE__ */ new Set(); + } + add(plugin) { + const plugins = []; + asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); + return () => { + plugins.forEach((plugin2) => this.plugins.delete(plugin2)); + }; + } + exec(type, data, context) { + let output = data; + const contextual = Object.freeze(Object.create(context)); + for (const plugin of this.plugins) { + if (plugin.type === type) { + output = plugin.action(output, contextual); + } + } + return output; + } +}; +init_utils(); +function progressMonitorPlugin(progress) { + const progressCommand = "--progress"; + const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; + const onProgress = { + type: "spawn.after", + action(_data, context) { + var _a2; + if (!context.commands.includes(progressCommand)) { + return; + } + (_a2 = context.spawned.stderr) == null ? void 0 : _a2.on("data", (chunk) => { + const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); + if (!message) { + return; + } + progress({ + method: context.method, + stage: progressEventStage(message[1]), + progress: asNumber(message[2]), + processed: asNumber(message[3]), + total: asNumber(message[4]) + }); + }); + } + }; + const onArgs = { + type: "spawn.args", + action(args, context) { + if (!progressMethods.includes(context.method)) { + return args; + } + return including(args, progressCommand); + } + }; + return [onArgs, onProgress]; +} +function progressEventStage(input) { + return String(input.toLowerCase().split(" ", 1)) || "unknown"; +} +init_utils(); +function spawnOptionsPlugin(spawnOptions) { + const options = pick(spawnOptions, ["uid", "gid"]); + return { + type: "spawn.options", + action(data) { + return __spreadValues(__spreadValues({}, options), data); + } + }; +} +function timeoutPlugin({ + block +}) { + if (block > 0) { + return { + type: "spawn.after", + action(_data, context) { + var _a2, _b; + let timeout; + function wait3() { + timeout && clearTimeout(timeout); + timeout = setTimeout(kill, block); + } + function stop() { + var _a3, _b2; + (_a3 = context.spawned.stdout) == null ? void 0 : _a3.off("data", wait3); + (_b2 = context.spawned.stderr) == null ? void 0 : _b2.off("data", wait3); + context.spawned.off("exit", stop); + context.spawned.off("close", stop); + timeout && clearTimeout(timeout); + } + function kill() { + stop(); + context.kill(new GitPluginError(void 0, "timeout", `block timeout reached`)); + } + (_a2 = context.spawned.stdout) == null ? void 0 : _a2.on("data", wait3); + (_b = context.spawned.stderr) == null ? void 0 : _b.on("data", wait3); + context.spawned.on("exit", stop); + context.spawned.on("close", stop); + wait3(); + } + }; + } +} +init_utils(); +var Git = require_git(); +function gitInstanceFactory(baseDir, options) { + const plugins = new PluginStore(); + const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); + } + if (Array.isArray(config.config)) { + plugins.add(commandConfigPrefixingPlugin(config.config)); + } + plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); + plugins.add(completionDetectionPlugin(config.completion)); + config.abort && plugins.add(abortPlugin(config.abort)); + config.progress && plugins.add(progressMonitorPlugin(config.progress)); + config.timeout && plugins.add(timeoutPlugin(config.timeout)); + config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); + plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); + config.errors && plugins.add(errorDetectionPlugin(config.errors)); + return new Git(config, plugins); +} +init_git_response_error(); +var esm_default = gitInstanceFactory; + +// src/simpleGit.ts +var SimpleGit = class extends GitManager { + constructor(plugin) { + super(plugin); + } + async setGitInstance(ignoreError = false) { + if (this.isGitInstalled()) { + const adapter = this.app.vault.adapter; + const path2 = adapter.getBasePath(); + let basePath = path2; + if (this.plugin.settings.basePath) { + const exists2 = await adapter.exists((0, import_obsidian6.normalizePath)(this.plugin.settings.basePath)); + if (exists2) { + basePath = path2 + import_path.sep + this.plugin.settings.basePath; + } else if (!ignoreError) { + new import_obsidian6.Notice("ObsidianGit: Base path does not exist"); + } + } + this.git = esm_default({ + baseDir: basePath, + binary: this.plugin.localStorage.getGitPath() || void 0, + config: ["core.quotepath=off"] + }); + const env = this.plugin.localStorage.getPATHPaths(); + if (env.length > 0) { + const path3 = process.env["PATH"] + ":" + env.join(":"); + process.env["PATH"] = path3; + } + const debug2 = require_browser(); + debug2.enable("simple-git"); + await this.git.cwd(await this.git.revparse("--show-toplevel")); + } + } + async status() { + this.plugin.setState(PluginState.status); + const status2 = await this.git.status((err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + return { + changed: status2.files.filter((e) => e.working_dir !== " ").map((e) => { + const res = this.formatPath(e); + return { + path: res.path, + from: res.from, + working_dir: e.working_dir === "?" ? "U" : e.working_dir, + vault_path: this.getVaultPath(res.path) + }; + }), + staged: status2.files.filter((e) => e.index !== " " && e.index != "?").map((e) => { + const res = this.formatPath(e, e.index === "R"); + return { + path: res.path, + from: res.from, + index: e.index, + vault_path: this.getVaultPath(res.path) + }; + }), + conflicted: status2.conflicted.map((path2) => this.formatPath({ path: path2 }).path) + }; + } + formatPath(path2, renamed = false) { + function format(path3) { + if (path3 == void 0) + return void 0; + if (path3.startsWith('"') && path3.endsWith('"')) { + return path3.substring(1, path3.length - 1); + } else { + return path3; + } + } + if (renamed) { + return { + from: format(path2.from), + path: format(path2.path) + }; + } else { + return { + path: format(path2.path) + }; + } + } + async commitAll({ message }) { + if (this.plugin.settings.updateSubmodules) { + this.plugin.setState(PluginState.commit); + await new Promise(async (resolve, reject) => { + this.git.outputHandler(async (cmd, stdout, stderr, args) => { + if (!(args.contains("submodule") && args.contains("foreach"))) + return; + let body = ""; + const root = this.app.vault.adapter.getBasePath() + (this.plugin.settings.basePath ? "/" + this.plugin.settings.basePath : ""); + stdout.on("data", (chunk) => { + body += chunk.toString("utf8"); + }); + stdout.on("end", async () => { + const submods = body.split("\n"); + const strippedSubmods = submods.map((i) => { + const submod = i.match(/'([^']*)'/); + if (submod != void 0) { + return root + "/" + submod[1] + import_path.sep; + } + }); + strippedSubmods.reverse(); + for (const item of strippedSubmods) { + if (item != void 0) { + await this.git.cwd({ path: item, root: false }).add("-A", (err) => this.onError(err)); + await this.git.cwd({ path: item, root: false }).commit(await this.formatCommitMessage(message), (err) => this.onError(err)); + } + } + resolve(); + }); + }); + await this.git.subModule(["foreach", "--recursive", ""]); + this.git.outputHandler(() => { + }); + }); + } + this.plugin.setState(PluginState.add); + await this.git.add("-A", (err) => this.onError(err)); + this.plugin.setState(PluginState.commit); + return (await this.git.commit(await this.formatCommitMessage(message), (err) => this.onError(err))).summary.changes; + } + async commit(message) { + this.plugin.setState(PluginState.commit); + const res = (await this.git.commit(await this.formatCommitMessage(message), (err) => this.onError(err))).summary.changes; + this.plugin.setState(PluginState.idle); + return res; + } + async stage(path2, relativeToVault) { + this.plugin.setState(PluginState.add); + path2 = this.getPath(path2, relativeToVault); + await this.git.add(["--", path2], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + } + async stageAll({ dir }) { + this.plugin.setState(PluginState.add); + await this.git.add(dir != null ? dir : "-A", (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + } + async unstageAll({ dir }) { + this.plugin.setState(PluginState.add); + await this.git.reset(dir != void 0 ? ["--", dir] : [], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + } + async unstage(path2, relativeToVault) { + this.plugin.setState(PluginState.add); + path2 = this.getPath(path2, relativeToVault); + await this.git.reset(["--", path2], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + } + async discard(filepath) { + this.plugin.setState(PluginState.add); + await this.git.checkout(["--", filepath], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + } + async discardAll({ dir }) { + return this.discard(dir != null ? dir : "."); + } + async pull() { + this.plugin.setState(PluginState.pull); + if (this.plugin.settings.updateSubmodules) + await this.git.subModule(["update", "--remote", "--merge", "--recursive"], (err) => this.onError(err)); + const branchInfo = await this.branchInfo(); + const localCommit = await this.git.revparse([branchInfo.current], (err) => this.onError(err)); + await this.git.fetch((err) => this.onError(err)); + const upstreamCommit = await this.git.revparse([branchInfo.tracking], (err) => this.onError(err)); + if (localCommit !== upstreamCommit) { + if (this.plugin.settings.syncMethod === "merge" || this.plugin.settings.syncMethod === "rebase") { + try { + switch (this.plugin.settings.syncMethod) { + case "merge": + await this.git.merge([branchInfo.tracking]); + break; + case "rebase": + await this.git.rebase([branchInfo.tracking]); + } + } catch (err) { + this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${err.message}`); + return; + } + } else if (this.plugin.settings.syncMethod === "reset") { + try { + await this.git.raw(["update-ref", `refs/heads/${branchInfo.current}`, upstreamCommit], (err) => this.onError(err)); + await this.unstageAll({}); + } catch (err) { + this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${err.message}`); + } + } + const afterMergeCommit = await this.git.revparse([branchInfo.current], (err) => this.onError(err)); + const filesChanged = await this.git.diff([`${localCommit}..${afterMergeCommit}`, "--name-only"]); + return filesChanged.split(/\r\n|\r|\n/).filter((value) => value.length > 0).map((e) => { + return { + path: e, + working_dir: "P", + vault_path: this.getVaultPath(e) + }; + }); + } else { + return []; + } + } + async push() { + this.plugin.setState(PluginState.status); + const status2 = await this.git.status(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const remoteChangedFiles = (await this.git.diffSummary([currentBranch2, trackingBranch, "--"], (err) => this.onError(err))).changed; + this.plugin.setState(PluginState.push); + if (this.plugin.settings.updateSubmodules) { + await this.git.env({ ...process.env, "OBSIDIAN_GIT": 1 }).subModule(["foreach", "--recursive", `tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`], (err) => this.onError(err)); + } + await this.git.env({ ...process.env, "OBSIDIAN_GIT": 1 }).push((err) => this.onError(err)); + return remoteChangedFiles; + } + async canPush() { + if (this.plugin.settings.updateSubmodules === true) { + return true; + } + const status2 = await this.git.status((err) => this.onError(err)); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const remoteChangedFiles = (await this.git.diffSummary([currentBranch2, trackingBranch, "--"])).changed; + return remoteChangedFiles !== 0; + } + async checkRequirements() { + if (!this.isGitInstalled()) { + return "missing-git"; + } + if (!await this.git.checkIsRepo()) { + return "missing-repo"; + } + return "valid"; + } + async branchInfo() { + const status2 = await this.git.status((err) => this.onError(err)); + const branches = await this.git.branch(["--no-color"], (err) => this.onError(err)); + return { + current: status2.current || void 0, + tracking: status2.tracking || void 0, + branches: branches.all + }; + } + async getRemoteUrl(remote) { + return await this.git.remote(["get-url", remote], (err, url) => this.onError(err)) || void 0; + } + async log(file, relativeToVault = true) { + const path2 = this.getPath(file, relativeToVault); + const res = await this.git.log({ file: path2 }, (err) => this.onError(err)); + return res.all; + } + async show(commitHash, file, relativeToVault = true) { + const path2 = this.getPath(file, relativeToVault); + return this.git.show([commitHash + ":" + path2], (err) => this.onError(err)); + } + async checkout(branch2) { + await this.git.checkout(branch2, (err) => this.onError(err)); + } + async createBranch(branch2) { + await this.git.checkout(["-b", branch2], (err) => this.onError(err)); + } + async deleteBranch(branch2, force) { + await this.git.branch([force ? "-D" : "-d", branch2], (err) => this.onError(err)); + } + async branchIsMerged(branch2) { + const notMergedBranches = await this.git.branch(["--no-merged"], (err) => this.onError(err)); + return !notMergedBranches.all.contains(branch2); + } + async init() { + await this.git.init(false, (err) => this.onError(err)); + } + async clone(url, dir) { + await this.git.clone(url, path.join(this.app.vault.adapter.getBasePath(), dir), [], (err) => this.onError(err)); + } + async setConfig(path2, value) { + if (value == void 0) { + await this.git.raw(["config", "--local", "--unset", path2]); + } else { + await this.git.addConfig(path2, value, (err) => this.onError(err)); + } + } + async getConfig(path2) { + const config = await this.git.listConfig("local", (err) => this.onError(err)); + return config.all[path2]; + } + async fetch(remote) { + await this.git.fetch(remote != void 0 ? [remote] : [], (err) => this.onError(err)); + } + async setRemote(name, url) { + if ((await this.getRemotes()).includes(name)) + await this.git.remote(["set-url", name, url], (err) => this.onError(err)); + else { + await this.git.remote(["add", name, url], (err) => this.onError(err)); + } + } + async getRemoteBranches(remote) { + const res = await this.git.branch(["-r", "--list", `${remote}*`], (err) => this.onError(err)); + console.log(remote); + console.log(res); + const list = []; + for (const item in res.branches) { + list.push(res.branches[item].name); + } + return list; + } + async getRemotes() { + const res = await this.git.remote([], (err) => this.onError(err)); + if (res) { + return res.trim().split("\n"); + } else { + return []; + } + } + async removeRemote(remoteName) { + await this.git.removeRemote(remoteName); + } + async updateUpstreamBranch(remoteBranch) { + try { + await this.git.branch(["--set-upstream-to", remoteBranch]); + } catch (e) { + console.error(e); + try { + await this.git.branch(["--set-upstream", remoteBranch]); + } catch (e2) { + console.error(e2); + await this.git.push(["--set-upstream", ...remoteBranch.split("/")], (err) => this.onError(err)); + } + } + } + updateGitPath(gitPath) { + this.setGitInstance(); + } + updateBasePath(basePath) { + this.setGitInstance(true); + } + async getDiffString(filePath, stagedChanges = false) { + if (stagedChanges) + return await this.git.diff(["--cached", "--", filePath]); + else + return await this.git.diff(["--", filePath]); + } + async diff(file, commit1, commit2) { + return await this.git.diff([`${commit1}..${commit2}`, "--", file]); + } + async getLastCommitTime() { + const res = await this.git.log({ n: 1 }, (err) => this.onError(err)); + if (res != null && res.latest != null) { + return new Date(res.latest.date); + } + } + isGitInstalled() { + const command = (0, import_child_process2.spawnSync)(this.plugin.localStorage.getGitPath() || "git", ["--version"], { + stdio: "ignore" + }); + if (command.error) { + console.error(command.error); + return false; + } + return true; + } + onError(error) { + if (error) { + const networkFailure = error.message.contains("Could not resolve host") || error.message.match(/ssh: connect to host .*? port .*?: Operation timed out/) || error.message.match(/ssh: connect to host .*? port .*?: Network is unreachable/); + if (!networkFailure) { + this.plugin.displayError(error.message); + this.plugin.setState(PluginState.idle); + } else if (!this.plugin.offlineMode) { + this.plugin.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.", 2e3); + } + if (networkFailure) { + this.plugin.offlineMode = true; + this.plugin.setState(PluginState.idle); + } + } + } +}; + +// src/settings.ts +var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab { + display() { + const { containerEl } = this; + const plugin = this.plugin; + const commitOrBackup = plugin.settings.differentIntervalCommitAndPush ? "commit" : "backup"; + const gitReady = plugin.gitReady; + containerEl.empty(); + containerEl.createEl("h2", { text: "Git Backup settings" }); + if (!gitReady) { + containerEl.createEl("p", { text: "Git is not ready. When all settings are correct you can configure auto backup, etc." }); + } + if (gitReady) { + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Automatic" }); + new import_obsidian7.Setting(containerEl).setName("Split automatic commit and push").setDesc("Enable to use separate timer for commit and push").addToggle((toggle) => toggle.setValue(plugin.settings.differentIntervalCommitAndPush).onChange((value) => { + plugin.settings.differentIntervalCommitAndPush = value; + plugin.saveSettings(); + plugin.clearAutoBackup(); + plugin.clearAutoPush(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + } + if (value && plugin.settings.autoPushInterval > 0) { + plugin.startAutoPush(plugin.settings.autoPushInterval); + } + this.display(); + })); + new import_obsidian7.Setting(containerEl).setName(`Vault ${commitOrBackup} interval (minutes)`).setDesc(`${plugin.settings.differentIntervalCommitAndPush ? "Commit" : "Commit and push"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText((text2) => text2.setValue(String(plugin.settings.autoSaveInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoSaveInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.clearAutoBackup(); + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + new import_obsidian7.Notice(`Automatic ${commitOrBackup} enabled! Every ${plugin.settings.autoSaveInterval} minutes.`); + } else if (plugin.settings.autoSaveInterval <= 0) { + plugin.clearAutoBackup() && new import_obsidian7.Notice(`Automatic ${commitOrBackup} disabled!`); + } + } else { + new import_obsidian7.Notice("Please specify a valid number."); + } + })); + if (!plugin.settings.setLastSaveToLastCommit) + new import_obsidian7.Setting(containerEl).setName(`Auto Backup after file change`).setDesc(`If turned on, do auto ${commitOrBackup} every ${plugin.settings.autoSaveInterval} minutes after last change. This also prevents auto ${commitOrBackup} while editing a file. If turned off, it's independent from last the change.`).addToggle((toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { + plugin.settings.autoBackupAfterFileChange = value; + this.display(); + plugin.saveSettings(); + plugin.clearAutoBackup(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + } + })); + if (!plugin.settings.autoBackupAfterFileChange) + new import_obsidian7.Setting(containerEl).setName(`Auto ${commitOrBackup} after lastest commit`).setDesc(`If turned on, set last auto ${commitOrBackup} time to lastest commit`).addToggle((toggle) => toggle.setValue(plugin.settings.setLastSaveToLastCommit).onChange(async (value) => { + plugin.settings.setLastSaveToLastCommit = value; + plugin.saveSettings(); + this.display(); + plugin.clearAutoBackup(); + await plugin.setUpAutoBackup(); + })); + if (plugin.settings.differentIntervalCommitAndPush) { + new import_obsidian7.Setting(containerEl).setName(`Vault push interval (minutes)`).setDesc("Push changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPushInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPushInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPushInterval > 0) { + plugin.clearAutoPush(); + plugin.startAutoPush(plugin.settings.autoPushInterval); + new import_obsidian7.Notice(`Automatic push enabled! Every ${plugin.settings.autoPushInterval} minutes.`); + } else if (plugin.settings.autoPushInterval <= 0) { + plugin.clearAutoPush() && new import_obsidian7.Notice("Automatic push disabled!"); + } + } else { + new import_obsidian7.Notice("Please specify a valid number."); + } + })); + } + new import_obsidian7.Setting(containerEl).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPullInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPullInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPullInterval > 0) { + plugin.clearAutoPull(); + plugin.startAutoPull(plugin.settings.autoPullInterval); + new import_obsidian7.Notice(`Automatic pull enabled! Every ${plugin.settings.autoPullInterval} minutes.`); + } else if (plugin.settings.autoPullInterval <= 0) { + plugin.clearAutoPull() && new import_obsidian7.Notice("Automatic pull disabled!"); + } + } else { + new import_obsidian7.Notice("Please specify a valid number."); + } + })); + new import_obsidian7.Setting(containerEl).setName("Specify custom commit message on auto backup").setDesc("You will get a pop up to specify your message").addToggle((toggle) => toggle.setValue(plugin.settings.customMessageOnAutoBackup).onChange((value) => { + plugin.settings.customMessageOnAutoBackup = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Commit message on auto backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.autoCommitMessage).onChange((value) => { + plugin.settings.autoCommitMessage = value; + plugin.saveSettings(); + })); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Commit message" }); + new import_obsidian7.Setting(containerEl).setName("Commit message on manual backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.commitMessage ? plugin.settings.commitMessage : "").onChange((value) => { + plugin.settings.commitMessage = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("{{date}} placeholder format").setDesc('Specify custom date format. E.g. "YYYY-MM-DD HH:mm:ss"').addText((text2) => text2.setPlaceholder(plugin.settings.commitDateFormat).setValue(plugin.settings.commitDateFormat).onChange(async (value) => { + plugin.settings.commitDateFormat = value; + await plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText((text2) => { + var _a2; + return text2.setValue((_a2 = plugin.localStorage.getHostname()) != null ? _a2 : "").onChange(async (value) => { + plugin.localStorage.setHostname(value); + }); + }); + new import_obsidian7.Setting(containerEl).setName("Preview commit message").addButton((button) => button.setButtonText("Preview").onClick(async () => { + const commitMessagePreview = await plugin.gitManager.formatCommitMessage(plugin.settings.commitMessage); + new import_obsidian7.Notice(`${commitMessagePreview}`); + })); + new import_obsidian7.Setting(containerEl).setName("List filenames affected by commit in the commit body").addToggle((toggle) => toggle.setValue(plugin.settings.listChangedFilesInMessageBody).onChange((value) => { + plugin.settings.listChangedFilesInMessageBody = value; + plugin.saveSettings(); + })); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Backup" }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Sync Method").setDesc("Selects the method used for handling new changes found in your remote git repository.").addDropdown((dropdown) => { + const options = { + "merge": "Merge", + "rebase": "Rebase", + "reset": "Other sync service (Only updates the HEAD without touching the working directory)" + }; + dropdown.addOptions(options); + dropdown.setValue(plugin.settings.syncMethod); + dropdown.onChange(async (option) => { + plugin.settings.syncMethod = option; + plugin.saveSettings(); + }); + }); + new import_obsidian7.Setting(containerEl).setName("Pull updates on startup").setDesc("Automatically pull updates when Obsidian starts").addToggle((toggle) => toggle.setValue(plugin.settings.autoPullOnBoot).onChange((value) => { + plugin.settings.autoPullOnBoot = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Push on backup").setDesc("Disable to only commit changes").addToggle((toggle) => toggle.setValue(!plugin.settings.disablePush).onChange((value) => { + plugin.settings.disablePush = !value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Pull changes before push").setDesc("Commit -> pull -> push (Only if pushing is enabled)").addToggle((toggle) => toggle.setValue(plugin.settings.pullBeforePush).onChange((value) => { + plugin.settings.pullBeforePush = value; + plugin.saveSettings(); + })); + } + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Miscellaneous" }); + new import_obsidian7.Setting(containerEl).setName("Automatically refresh Source Control View on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option").addToggle((toggle) => toggle.setValue(plugin.settings.refreshSourceControl).onChange((value) => { + plugin.settings.refreshSourceControl = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Source Control View refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View").addText((toggle) => toggle.setValue(plugin.settings.refreshSourceControlTimer.toString()).setPlaceholder("7000").onChange((value) => { + plugin.settings.refreshSourceControlTimer = Math.max(parseInt(value), 500); + plugin.saveSettings(); + plugin.setRefreshDebouncer(); + })); + new import_obsidian7.Setting(containerEl).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting").addToggle((toggle) => toggle.setValue(plugin.settings.disablePopups).onChange((value) => { + plugin.settings.disablePopups = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect").addToggle((toggle) => toggle.setValue(plugin.settings.showStatusBar).onChange((value) => { + plugin.settings.showStatusBar = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Show branch status bar").setDesc("Obsidian must be restarted for the changes to take affect").addToggle((toggle) => toggle.setValue(plugin.settings.showBranchStatusBar).onChange((value) => { + plugin.settings.showBranchStatusBar = value; + plugin.saveSettings(); + })); + new import_obsidian7.Setting(containerEl).setName("Show changes files count in status bar").addToggle((toggle) => toggle.setValue(plugin.settings.changedFilesInStatusBar).onChange((value) => { + plugin.settings.changedFilesInStatusBar = value; + plugin.saveSettings(); + })); + containerEl.createEl("br"); + if (plugin.gitManager instanceof IsomorphicGit) { + containerEl.createEl("h3", { text: "Authentication/Commit Author" }); + } else { + containerEl.createEl("h3", { text: "Commit Author" }); + } + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian7.Setting(containerEl).setName("Username on your git server. E.g. your username on GitHub").addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getUsername()) != null ? _a2 : ""); + cb.onChange((value) => { + plugin.localStorage.setUsername(value); + }); + }); + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian7.Setting(containerEl).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText((cb) => { + cb.inputEl.autocapitalize = "off"; + cb.inputEl.autocomplete = "off"; + cb.inputEl.spellcheck = false; + cb.onChange((value) => { + plugin.localStorage.setPassword(value); + }); + }); + if (gitReady) + new import_obsidian7.Setting(containerEl).setName("Author name for commit").addText(async (cb) => { + cb.setValue(await plugin.gitManager.getConfig("user.name")); + cb.onChange((value) => { + plugin.gitManager.setConfig("user.name", value == "" ? void 0 : value); + }); + }); + if (gitReady) + new import_obsidian7.Setting(containerEl).setName("Author email for commit").addText(async (cb) => { + cb.setValue(await plugin.gitManager.getConfig("user.email")); + cb.onChange((value) => { + plugin.gitManager.setConfig("user.email", value == "" ? void 0 : value); + }); + }); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Advanced" }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Update submodules").setDesc('"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule').addToggle((toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { + plugin.settings.updateSubmodules = value; + plugin.saveSettings(); + })); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Custom Git binary path").addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getGitPath()) != null ? _a2 : ""); + cb.setPlaceholder("git"); + cb.onChange((value) => { + plugin.localStorage.setGitPath(value); + plugin.gitManager.updateGitPath(value || "git"); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea((cb) => { + cb.setValue(plugin.localStorage.getPATHPaths().join("\n")); + cb.onChange((value) => { + plugin.localStorage.setPATHPaths(value.split("\n")); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Reload with new PATH environment variable").addButton((cb) => { + cb.setButtonText("Reload"); + cb.setCta(); + cb.onClick(() => { + plugin.gitManager.setGitInstance(); + }); + }); + new import_obsidian7.Setting(containerEl).setName("Custom base path (Git repository path)").setDesc(` + Sets the relative path to the vault from which the Git binary should be executed. + Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. + `).addText((cb) => { + cb.setValue(plugin.settings.basePath); + cb.setPlaceholder("directory/directory-with-git-repo"); + cb.onChange((value) => { + plugin.settings.basePath = value; + plugin.saveSettings(); + plugin.gitManager.updateBasePath(value || ""); + }); + }); + new import_obsidian7.Setting(containerEl).setName("Disable on this device").addToggle((toggle) => toggle.setValue(plugin.localStorage.getPluginDisabled()).onChange((value) => { + plugin.localStorage.setPluginDisabled(value); + if (value) { + plugin.unloadPlugin(); + } else { + plugin.loadPlugin(); + } + new import_obsidian7.Notice("Obsidian must be restarted for the changes to take affect"); + })); + new import_obsidian7.Setting(containerEl).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton((bt) => { + bt.buttonEl.outerHTML = "Buy Me a Coffee at ko-fi.com"; + }); + const info = containerEl.createDiv(); + info.setAttr("align", "center"); + info.setText("Debugging and logging:\nYou can always see the logs of this and every other plugin by opening the console with"); + const keys = containerEl.createDiv(); + keys.setAttr("align", "center"); + keys.addClass("obsidian-git-shortcuts"); + if (import_obsidian7.Platform.isMacOS === true) { + keys.createEl("kbd", { text: "CMD (\u2318) + OPTION (\u2325) + I" }); + } else { + keys.createEl("kbd", { text: "CTRL + SHIFT + I" }); + } + } +}; + +// src/statusBar.ts +init_polyfill_buffer(); +var import_obsidian8 = __toModule(require("obsidian")); +var StatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.messages = []; + this.base = "obsidian-git-statusbar-"; + this.statusBarEl.setAttribute("aria-label-position", "top"); + } + displayMessage(message, timeout) { + this.messages.push({ + message: `Git: ${message.slice(0, 100)}`, + timeout + }); + this.display(); + } + display() { + if (this.messages.length > 0 && !this.currentMessage) { + this.currentMessage = this.messages.shift(); + this.statusBarEl.addClass(this.base + "message"); + this.statusBarEl.ariaLabel = ""; + this.statusBarEl.setText(this.currentMessage.message); + this.lastMessageTimestamp = Date.now(); + } else if (this.currentMessage) { + const messageAge = Date.now() - this.lastMessageTimestamp; + if (messageAge >= this.currentMessage.timeout) { + this.currentMessage = null; + this.lastMessageTimestamp = null; + } + } else { + this.displayState(); + } + } + displayState() { + if (this.statusBarEl.getText().length > 3 || !this.statusBarEl.hasChildNodes()) { + this.statusBarEl.empty(); + this.iconEl = this.statusBarEl.createDiv(); + this.textEl = this.statusBarEl.createDiv(); + this.textEl.style.float = "right"; + this.textEl.style.marginLeft = "5px"; + this.iconEl.style.float = "left"; + } + switch (this.plugin.state) { + case PluginState.idle: + this.displayFromNow(this.plugin.lastUpdate); + break; + case PluginState.status: + this.statusBarEl.ariaLabel = "Checking repository status..."; + (0, import_obsidian8.setIcon)(this.iconEl, "refresh-cw"); + this.statusBarEl.addClass(this.base + "status"); + break; + case PluginState.add: + this.statusBarEl.ariaLabel = "Adding files..."; + (0, import_obsidian8.setIcon)(this.iconEl, "refresh-w"); + this.statusBarEl.addClass(this.base + "add"); + break; + case PluginState.commit: + this.statusBarEl.ariaLabel = "Committing changes..."; + (0, import_obsidian8.setIcon)(this.iconEl, "git-commit"); + this.statusBarEl.addClass(this.base + "commit"); + break; + case PluginState.push: + this.statusBarEl.ariaLabel = "Pushing changes..."; + (0, import_obsidian8.setIcon)(this.iconEl, "upload"); + this.statusBarEl.addClass(this.base + "push"); + break; + case PluginState.pull: + this.statusBarEl.ariaLabel = "Pulling changes..."; + (0, import_obsidian8.setIcon)(this.iconEl, "download"); + this.statusBarEl.addClass(this.base + "pull"); + break; + case PluginState.conflicted: + this.statusBarEl.ariaLabel = "You have conflict files..."; + (0, import_obsidian8.setIcon)(this.iconEl, "alert-circle"); + this.statusBarEl.addClass(this.base + "conflict"); + break; + default: + this.statusBarEl.ariaLabel = "Failed on initialization!"; + (0, import_obsidian8.setIcon)(this.iconEl, "alert-triangle"); + this.statusBarEl.addClass(this.base + "failed-init"); + break; + } + } + displayFromNow(timestamp) { + if (timestamp) { + const moment = window.moment; + const fromNow = moment(timestamp).fromNow(); + this.statusBarEl.ariaLabel = `${this.plugin.offlineMode ? "Offline: " : ""}Last Git update: ${fromNow}`; + } else { + this.statusBarEl.ariaLabel = this.plugin.offlineMode ? "Git is offline" : "Git is ready"; + } + if (this.plugin.offlineMode) { + (0, import_obsidian8.setIcon)(this.iconEl, "globe"); + } else { + (0, import_obsidian8.setIcon)(this.iconEl, "check"); + } + if (this.plugin.settings.changedFilesInStatusBar && this.plugin.cachedStatus) { + this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()); + } + this.statusBarEl.addClass(this.base + "idle"); + } +}; + +// src/ui/modals/changedFilesModal.ts +init_polyfill_buffer(); +var import_obsidian9 = __toModule(require("obsidian")); +var ChangedFilesModal = class extends import_obsidian9.FuzzySuggestModal { + constructor(plugin, changedFiles) { + super(plugin.app); + this.plugin = plugin; + this.changedFiles = changedFiles; + this.setPlaceholder("Not supported files will be opened by default app!"); + } + getItems() { + return this.changedFiles; + } + getItemText(item) { + if (item.index == "U" && item.working_dir == "U") { + return `Untracked | ${item.vault_path}`; + } + let working_dir = ""; + let index2 = ""; + if (item.working_dir != " ") + working_dir = `Working dir: ${item.working_dir} `; + if (item.index != " ") + index2 = `Index: ${item.index}`; + return `${working_dir}${index2} | ${item.vault_path}`; + } + onChooseItem(item, _) { + if (this.plugin.app.metadataCache.getFirstLinkpathDest(item.vault_path, "") == null) { + this.app.openWithDefaultApp(item.vault_path); + } else { + this.plugin.app.workspace.openLinkText(item.vault_path, "/"); + } + } +}; + +// src/ui/modals/customMessageModal.ts +init_polyfill_buffer(); +var import_obsidian10 = __toModule(require("obsidian")); +var CustomMessageModal = class extends import_obsidian10.SuggestModal { + constructor(plugin, fromAutoBackup) { + super(plugin.app); + this.fromAutoBackup = fromAutoBackup; + this.resolve = null; + this.plugin = plugin; + this.setPlaceholder("Type your message and select optional the version with the added date."); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + selectSuggestion(value, evt) { + if (this.resolve) + this.resolve(value); + super.selectSuggestion(value, evt); + } + getSuggestions(query) { + const date = window.moment().format(this.plugin.settings.commitDateFormat); + if (query == "") + query = "..."; + return [query, `${date}: ${query}`, `${query}: ${date}`]; + } + renderSuggestion(value, el) { + el.innerText = value; + } + onChooseSuggestion(item, _) { + } +}; + +// src/constants.ts +init_polyfill_buffer(); +var import_obsidian11 = __toModule(require("obsidian")); +var DEFAULT_SETTINGS = { + commitMessage: "vault backup: {{date}}", + autoCommitMessage: void 0, + commitDateFormat: "YYYY-MM-DD HH:mm:ss", + autoSaveInterval: 0, + autoPushInterval: 0, + autoPullInterval: 0, + autoPullOnBoot: false, + disablePush: false, + pullBeforePush: true, + disablePopups: false, + listChangedFilesInMessageBody: false, + showStatusBar: true, + updateSubmodules: false, + syncMethod: "merge", + customMessageOnAutoBackup: false, + autoBackupAfterFileChange: false, + treeStructure: false, + refreshSourceControl: import_obsidian11.Platform.isDesktopApp, + basePath: "", + differentIntervalCommitAndPush: false, + changedFilesInStatusBar: false, + showedMobileNotice: false, + refreshSourceControlTimer: 7e3, + showBranchStatusBar: true, + setLastSaveToLastCommit: false +}; +var GIT_VIEW_CONFIG = { + type: "git-view", + name: "Source Control", + icon: "git-pull-request" +}; +var DIFF_VIEW_CONFIG = { + type: "diff-view", + name: "Diff View", + icon: "git-pull-request" +}; + +// src/localStorageSettings.ts +init_polyfill_buffer(); +var LocalStorageSettings = class { + constructor(plugin) { + this.plugin = plugin; + this.prefix = this.plugin.manifest.id + ":"; + } + migrate() { + const keys = ["password", "hostname", "conflict", "lastAutoPull", "lastAutoBackup", "lastAutoPush", "gitPath", "pluginDisabled"]; + for (const key2 of keys) { + const old = localStorage.getItem(this.prefix + key2); + if (app.loadLocalStorage(this.prefix + key2) == null && old != null) { + if (old != null) { + app.saveLocalStorage(this.prefix + key2, old); + localStorage.removeItem(this.prefix + key2); + } + } + } + } + getPassword() { + return app.loadLocalStorage(this.prefix + "password"); + } + setPassword(value) { + return app.saveLocalStorage(this.prefix + "password", value); + } + getUsername() { + return app.loadLocalStorage(this.prefix + "username"); + } + setUsername(value) { + return app.saveLocalStorage(this.prefix + "username", value); + } + getHostname() { + return app.loadLocalStorage(this.prefix + "hostname"); + } + setHostname(value) { + return app.saveLocalStorage(this.prefix + "hostname", value); + } + getConflict() { + return app.loadLocalStorage(this.prefix + "conflict"); + } + setConflict(value) { + return app.saveLocalStorage(this.prefix + "conflict", value); + } + getLastAutoPull() { + return app.loadLocalStorage(this.prefix + "lastAutoPull"); + } + setLastAutoPull(value) { + return app.saveLocalStorage(this.prefix + "lastAutoPull", value); + } + getLastAutoBackup() { + return app.loadLocalStorage(this.prefix + "lastAutoBackup"); + } + setLastAutoBackup(value) { + return app.saveLocalStorage(this.prefix + "lastAutoBackup", value); + } + getLastAutoPush() { + return app.loadLocalStorage(this.prefix + "lastAutoPush"); + } + setLastAutoPush(value) { + return app.saveLocalStorage(this.prefix + "lastAutoPush", value); + } + getGitPath() { + return app.loadLocalStorage(this.prefix + "gitPath"); + } + setGitPath(value) { + return app.saveLocalStorage(this.prefix + "gitPath", value); + } + getPATHPaths() { + var _a2, _b; + return (_b = (_a2 = app.loadLocalStorage(this.prefix + "PATHPaths")) == null ? void 0 : _a2.split(":")) != null ? _b : []; + } + setPATHPaths(value) { + return app.saveLocalStorage(this.prefix + "PATHPaths", value.join(":")); + } + getPluginDisabled() { + return app.loadLocalStorage(this.prefix + "pluginDisabled") == "true"; + } + setPluginDisabled(value) { + return app.saveLocalStorage(this.prefix + "pluginDisabled", `${value}`); + } +}; + +// src/openInGitHub.ts +init_polyfill_buffer(); +var import_obsidian12 = __toModule(require("obsidian")); +async function openLineInGitHub(editor, file, manager) { + const { isGitHub, branch: branch2, repo, user } = await getData(manager); + if (isGitHub) { + const path2 = manager.getPath(file.path, true); + const from = editor.getCursor("from").line + 1; + const to = editor.getCursor("to").line + 1; + if (from === to) { + window.open(`https://github.com/${user}/${repo}/blob/${branch2}/${path2}?plain=1#L${from}`); + } else { + window.open(`https://github.com/${user}/${repo}/blob/${branch2}/${path2}?plain=1#L${from}-L${to}`); + } + } else { + new import_obsidian12.Notice("It seems like you are not using GitHub"); + } +} +async function openHistoryInGitHub(file, manager) { + const { isGitHub, branch: branch2, repo, user } = await getData(manager); + const path2 = manager.getPath(file.path, true); + if (isGitHub) { + window.open(`https://github.com/${user}/${repo}/commits/${branch2}/${path2}`); + } else { + new import_obsidian12.Notice("It seems like you are not using GitHub"); + } +} +async function getData(manager) { + const branchInfo = await manager.branchInfo(); + const remoteBranch = branchInfo.tracking; + const branch2 = branchInfo.current; + const remote = remoteBranch.substring(0, remoteBranch.indexOf("/")); + const remoteUrl = await manager.getConfig(`remote.${remote}.url`); + const [isGitHub, httpsUser, httpsRepo, sshUser, sshRepo] = remoteUrl.match(/(?:^https:\/\/github\.com\/(.*)\/(.*)\.git$)|(?:^git@github\.com:(.*)\/(.*)\.git$)/); + return { + isGitHub: !!isGitHub, + repo: httpsRepo || sshRepo, + user: httpsUser || sshUser, + branch: branch2 + }; +} + +// src/ui/diff/diffView.ts +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/diff2html.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/diff-parser.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/types.js +init_polyfill_buffer(); +var LineType; +(function(LineType2) { + LineType2["INSERT"] = "insert"; + LineType2["DELETE"] = "delete"; + LineType2["CONTEXT"] = "context"; +})(LineType || (LineType = {})); +var OutputFormatType = { + LINE_BY_LINE: "line-by-line", + SIDE_BY_SIDE: "side-by-side" +}; +var LineMatchingType = { + LINES: "lines", + WORDS: "words", + NONE: "none" +}; +var DiffStyleType = { + WORD: "word", + CHAR: "char" +}; + +// node_modules/diff2html/lib-esm/utils.js +init_polyfill_buffer(); +var specials = [ + "-", + "[", + "]", + "/", + "{", + "}", + "(", + ")", + "*", + "+", + "?", + ".", + "\\", + "^", + "$", + "|" +]; +var regex = RegExp("[" + specials.join("\\") + "]", "g"); +function escapeForRegExp(str) { + return str.replace(regex, "\\$&"); +} +function unifyPath(path2) { + return path2 ? path2.replace(/\\/g, "/") : path2; +} +function hashCode(text2) { + var i, chr, len; + var hash2 = 0; + for (i = 0, len = text2.length; i < len; i++) { + chr = text2.charCodeAt(i); + hash2 = (hash2 << 5) - hash2 + chr; + hash2 |= 0; + } + return hash2; +} + +// node_modules/diff2html/lib-esm/diff-parser.js +var __spreadArray = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +function getExtension(filename, language) { + var filenameParts = filename.split("."); + return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; +} +function startsWithAny(str, prefixes) { + return prefixes.reduce(function(startsWith, prefix) { + return startsWith || str.startsWith(prefix); + }, false); +} +var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; +function getFilename(line, linePrefix, extraPrefix) { + var prefixes = extraPrefix !== void 0 ? __spreadArray(__spreadArray([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes; + var FilenameRegExp = linePrefix ? new RegExp("^".concat(escapeForRegExp(linePrefix), ' "?(.+?)"?$')) : new RegExp('^"?(.+?)"?$'); + var _a2 = FilenameRegExp.exec(line) || [], _b = _a2[1], filename = _b === void 0 ? "" : _b; + var matchingPrefix = prefixes.find(function(p) { + return filename.indexOf(p) === 0; + }); + var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; + return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); +} +function getSrcFilename(line, srcPrefix) { + return getFilename(line, "---", srcPrefix); +} +function getDstFilename(line, dstPrefix) { + return getFilename(line, "+++", dstPrefix); +} +function parse(diffInput, config) { + if (config === void 0) { + config = {}; + } + var files = []; + var currentFile = null; + var currentBlock = null; + var oldLine = null; + var oldLine2 = null; + var newLine = null; + var possibleOldName = null; + var possibleNewName = null; + var oldFileNameHeader = "--- "; + var newFileNameHeader = "+++ "; + var hunkHeaderPrefix = "@@"; + var oldMode = /^old mode (\d{6})/; + var newMode = /^new mode (\d{6})/; + var deletedFileMode = /^deleted file mode (\d{6})/; + var newFileMode = /^new file mode (\d{6})/; + var copyFrom = /^copy from "?(.+)"?/; + var copyTo = /^copy to "?(.+)"?/; + var renameFrom = /^rename from "?(.+)"?/; + var renameTo = /^rename to "?(.+)"?/; + var similarityIndex = /^similarity index (\d+)%/; + var dissimilarityIndex = /^dissimilarity index (\d+)%/; + var index2 = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; + var binaryFiles = /^Binary files (.*) and (.*) differ/; + var binaryDiff = /^GIT binary patch/; + var combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; + var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; + var combinedNewFile = /^new file mode (\d{6})/; + var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; + var diffLines2 = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); + function saveBlock() { + if (currentBlock !== null && currentFile !== null) { + currentFile.blocks.push(currentBlock); + currentBlock = null; + } + } + function saveFile() { + if (currentFile !== null) { + if (!currentFile.oldName && possibleOldName !== null) { + currentFile.oldName = possibleOldName; + } + if (!currentFile.newName && possibleNewName !== null) { + currentFile.newName = possibleNewName; + } + if (currentFile.newName) { + files.push(currentFile); + currentFile = null; + } + } + possibleOldName = null; + possibleNewName = null; + } + function startFile() { + saveBlock(); + saveFile(); + currentFile = { + blocks: [], + deletedLines: 0, + addedLines: 0 + }; + } + function startBlock(line) { + saveBlock(); + var values; + if (currentFile !== null) { + if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { + currentFile.isCombined = false; + oldLine = parseInt(values[1], 10); + newLine = parseInt(values[2], 10); + } else if (values = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)) { + currentFile.isCombined = true; + oldLine = parseInt(values[1], 10); + oldLine2 = parseInt(values[2], 10); + newLine = parseInt(values[3], 10); + } else { + if (line.startsWith(hunkHeaderPrefix)) { + console.error("Failed to parse lines, starting in 0!"); + } + oldLine = 0; + newLine = 0; + currentFile.isCombined = false; + } + } + currentBlock = { + lines: [], + oldStartLine: oldLine, + oldStartLine2: oldLine2, + newStartLine: newLine, + header: line + }; + } + function createLine(line) { + if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) + return; + var currentLine = { + content: line + }; + var addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; + var deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; + if (startsWithAny(line, addedPrefixes)) { + currentFile.addedLines++; + currentLine.type = LineType.INSERT; + currentLine.oldNumber = void 0; + currentLine.newNumber = newLine++; + } else if (startsWithAny(line, deletedPrefixes)) { + currentFile.deletedLines++; + currentLine.type = LineType.DELETE; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = void 0; + } else { + currentLine.type = LineType.CONTEXT; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = newLine++; + } + currentBlock.lines.push(currentLine); + } + function existHunkHeader(line, lineIdx) { + var idx = lineIdx; + while (idx < diffLines2.length - 3) { + if (line.startsWith("diff")) { + return false; + } + if (diffLines2[idx].startsWith(oldFileNameHeader) && diffLines2[idx + 1].startsWith(newFileNameHeader) && diffLines2[idx + 2].startsWith(hunkHeaderPrefix)) { + return true; + } + idx++; + } + return false; + } + diffLines2.forEach(function(line, lineIndex) { + if (!line || line.startsWith("*")) { + return; + } + var values; + var prevLine = diffLines2[lineIndex - 1]; + var nxtLine = diffLines2[lineIndex + 1]; + var afterNxtLine = diffLines2[lineIndex + 2]; + if (line.startsWith("diff")) { + startFile(); + var gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; + if (values = gitDiffStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isGitDiff = true; + return; + } + if (!currentFile || !currentFile.isGitDiff && currentFile && line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) && afterNxtLine.startsWith(hunkHeaderPrefix)) { + startFile(); + } + if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) { + return; + } + if (currentFile && (typeof config.diffMaxChanges === "number" && currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges || typeof config.diffMaxLineLength === "number" && line.length > config.diffMaxLineLength)) { + currentFile.isTooBig = true; + currentFile.addedLines = 0; + currentFile.deletedLines = 0; + currentFile.blocks = []; + currentBlock = null; + var message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; + startBlock(message); + return; + } + if (line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) || line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader)) { + if (currentFile && !currentFile.oldName && line.startsWith("--- ") && (values = getSrcFilename(line, config.srcPrefix))) { + currentFile.oldName = values; + currentFile.language = getExtension(currentFile.oldName, currentFile.language); + return; + } + if (currentFile && !currentFile.newName && line.startsWith("+++ ") && (values = getDstFilename(line, config.dstPrefix))) { + currentFile.newName = values; + currentFile.language = getExtension(currentFile.newName, currentFile.language); + return; + } + } + if (currentFile && (line.startsWith(hunkHeaderPrefix) || currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock)) { + startBlock(line); + return; + } + if (currentBlock && (line.startsWith("+") || line.startsWith("-") || line.startsWith(" "))) { + createLine(line); + return; + } + var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + if (values = oldMode.exec(line)) { + currentFile.oldMode = values[1]; + } else if (values = newMode.exec(line)) { + currentFile.newMode = values[1]; + } else if (values = deletedFileMode.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } else if (values = newFileMode.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = copyFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isCopy = true; + } else if (values = copyTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isCopy = true; + } else if (values = renameFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isRename = true; + } else if (values = renameTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isRename = true; + } else if (values = binaryFiles.exec(line)) { + currentFile.isBinary = true; + currentFile.oldName = getFilename(values[1], void 0, config.srcPrefix); + currentFile.newName = getFilename(values[2], void 0, config.dstPrefix); + startBlock("Binary file"); + } else if (binaryDiff.test(line)) { + currentFile.isBinary = true; + startBlock(line); + } else if (values = similarityIndex.exec(line)) { + currentFile.unchangedPercentage = parseInt(values[1], 10); + } else if (values = dissimilarityIndex.exec(line)) { + currentFile.changedPercentage = parseInt(values[1], 10); + } else if (values = index2.exec(line)) { + currentFile.checksumBefore = values[1]; + currentFile.checksumAfter = values[2]; + values[3] && (currentFile.mode = values[3]); + } else if (values = combinedIndex.exec(line)) { + currentFile.checksumBefore = [values[2], values[3]]; + currentFile.checksumAfter = values[1]; + } else if (values = combinedMode.exec(line)) { + currentFile.oldMode = [values[2], values[3]]; + currentFile.newMode = values[1]; + } else if (values = combinedNewFile.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = combinedDeletedFile.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } + }); + saveBlock(); + saveFile(); + return files; +} + +// node_modules/diff2html/lib-esm/file-list-renderer.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/render-utils.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/rematch.js +init_polyfill_buffer(); +function levenshtein(a, b) { + if (a.length === 0) { + return b.length; + } + if (b.length === 0) { + return a.length; + } + var matrix = []; + var i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + var j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + return matrix[b.length][a.length]; +} +function newDistanceFn(str) { + return function(x, y) { + var xValue = str(x).trim(); + var yValue = str(y).trim(); + var lev = levenshtein(xValue, yValue); + return lev / (xValue.length + yValue.length); + }; +} +function newMatcherFn(distance2) { + function findBestMatch(a, b, cache) { + if (cache === void 0) { + cache = new Map(); + } + var bestMatchDist = Infinity; + var bestMatch; + for (var i = 0; i < a.length; ++i) { + for (var j = 0; j < b.length; ++j) { + var cacheKey = JSON.stringify([a[i], b[j]]); + var md = void 0; + if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { + md = distance2(a[i], b[j]); + cache.set(cacheKey, md); + } + if (md < bestMatchDist) { + bestMatchDist = md; + bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; + } + } + } + return bestMatch; + } + function group(a, b, level, cache) { + if (level === void 0) { + level = 0; + } + if (cache === void 0) { + cache = new Map(); + } + var bm = findBestMatch(a, b, cache); + if (!bm || a.length + b.length < 3) { + return [[a, b]]; + } + var a1 = a.slice(0, bm.indexA); + var b1 = b.slice(0, bm.indexB); + var aMatch = [a[bm.indexA]]; + var bMatch = [b[bm.indexB]]; + var tailA = bm.indexA + 1; + var tailB = bm.indexB + 1; + var a2 = a.slice(tailA); + var b2 = b.slice(tailB); + var group1 = group(a1, b1, level + 1, cache); + var groupMatch = group(aMatch, bMatch, level + 1, cache); + var group2 = group(a2, b2, level + 1, cache); + var result = groupMatch; + if (bm.indexA > 0 || bm.indexB > 0) { + result = group1.concat(result); + } + if (a.length > tailA || b.length > tailB) { + result = result.concat(group2); + } + return result; + } + return group; +} + +// node_modules/diff2html/lib-esm/render-utils.js +var __assign = function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var CSSLineClass = { + INSERTS: "d2h-ins", + DELETES: "d2h-del", + CONTEXT: "d2h-cntx", + INFO: "d2h-info", + INSERT_CHANGES: "d2h-ins d2h-change", + DELETE_CHANGES: "d2h-del d2h-change" +}; +var defaultRenderConfig = { + matching: LineMatchingType.NONE, + matchWordsThreshold: 0.25, + maxLineLengthHighlight: 1e4, + diffStyle: DiffStyleType.WORD +}; +var separator = "/"; +var distance = newDistanceFn(function(change) { + return change.value; +}); +var matcher = newMatcherFn(distance); +function isDevNullName(name) { + return name.indexOf("dev/null") !== -1; +} +function removeInsElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ""); +} +function removeDelElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ""); +} +function toCSSClass(lineType) { + switch (lineType) { + case LineType.CONTEXT: + return CSSLineClass.CONTEXT; + case LineType.INSERT: + return CSSLineClass.INSERTS; + case LineType.DELETE: + return CSSLineClass.DELETES; + } +} +function prefixLength(isCombined) { + return isCombined ? 2 : 1; +} +function escapeForHtml(str) { + return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); +} +function deconstructLine(line, isCombined, escape) { + if (escape === void 0) { + escape = true; + } + var indexToSplit = prefixLength(isCombined); + return { + prefix: line.substring(0, indexToSplit), + content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) + }; +} +function filenameDiff(file) { + var oldFilename = unifyPath(file.oldName); + var newFilename = unifyPath(file.newName); + if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { + var prefixPaths = []; + var suffixPaths = []; + var oldFilenameParts = oldFilename.split(separator); + var newFilenameParts = newFilename.split(separator); + var oldFilenamePartsSize = oldFilenameParts.length; + var newFilenamePartsSize = newFilenameParts.length; + var i = 0; + var j = oldFilenamePartsSize - 1; + var k = newFilenamePartsSize - 1; + while (i < j && i < k) { + if (oldFilenameParts[i] === newFilenameParts[i]) { + prefixPaths.push(newFilenameParts[i]); + i += 1; + } else { + break; + } + } + while (j > i && k > i) { + if (oldFilenameParts[j] === newFilenameParts[k]) { + suffixPaths.unshift(newFilenameParts[k]); + j -= 1; + k -= 1; + } else { + break; + } + } + var finalPrefix = prefixPaths.join(separator); + var finalSuffix = suffixPaths.join(separator); + var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); + var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); + if (finalPrefix.length && finalSuffix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } else if (finalPrefix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}"; + } else if (finalSuffix.length) { + return "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } + return oldFilename + " \u2192 " + newFilename; + } else if (!isDevNullName(newFilename)) { + return newFilename; + } else { + return oldFilename; + } +} +function getHtmlId(file) { + return "d2h-".concat(hashCode(filenameDiff(file)).toString().slice(-6)); +} +function getFileIcon(file) { + var templateName = "file-changed"; + if (file.isRename) { + templateName = "file-renamed"; + } else if (file.isCopy) { + templateName = "file-renamed"; + } else if (file.isNew) { + templateName = "file-added"; + } else if (file.isDeleted) { + templateName = "file-deleted"; + } else if (file.newName !== file.oldName) { + templateName = "file-renamed"; + } + return templateName; +} +function diffHighlight(diffLine1, diffLine2, isCombined, config) { + if (config === void 0) { + config = {}; + } + var _a2 = __assign(__assign({}, defaultRenderConfig), config), matching = _a2.matching, maxLineLengthHighlight = _a2.maxLineLengthHighlight, matchWordsThreshold = _a2.matchWordsThreshold, diffStyle = _a2.diffStyle; + var line1 = deconstructLine(diffLine1, isCombined, false); + var line2 = deconstructLine(diffLine2, isCombined, false); + if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { + return { + oldLine: { + prefix: line1.prefix, + content: escapeForHtml(line1.content) + }, + newLine: { + prefix: line2.prefix, + content: escapeForHtml(line2.content) + } + }; + } + var diff2 = diffStyle === "char" ? diffChars(line1.content, line2.content) : diffWordsWithSpace(line1.content, line2.content); + var changedWords = []; + if (diffStyle === "word" && matching === "words") { + var removed = diff2.filter(function(element2) { + return element2.removed; + }); + var added = diff2.filter(function(element2) { + return element2.added; + }); + var chunks = matcher(added, removed); + chunks.forEach(function(chunk) { + if (chunk[0].length === 1 && chunk[1].length === 1) { + var dist = distance(chunk[0][0], chunk[1][0]); + if (dist < matchWordsThreshold) { + changedWords.push(chunk[0][0]); + changedWords.push(chunk[1][0]); + } + } + }); + } + var highlightedLine = diff2.reduce(function(highlightedLine2, part) { + var elemType = part.added ? "ins" : part.removed ? "del" : null; + var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; + var escapedValue = escapeForHtml(part.value); + return elemType !== null ? "".concat(highlightedLine2, "<").concat(elemType).concat(addClass, ">").concat(escapedValue, "") : "".concat(highlightedLine2).concat(escapedValue); + }, ""); + return { + oldLine: { + prefix: line1.prefix, + content: removeInsElements(highlightedLine) + }, + newLine: { + prefix: line2.prefix, + content: removeDelElements(highlightedLine) + } + }; +} + +// node_modules/diff2html/lib-esm/file-list-renderer.js +var baseTemplatesPath = "file-summary"; +var iconsBaseTemplatesPath = "icon"; +function render(diffFiles, hoganUtils) { + var files = diffFiles.map(function(file) { + return hoganUtils.render(baseTemplatesPath, "line", { + fileHtmlId: getHtmlId(file), + oldName: file.oldName, + newName: file.newName, + fileName: filenameDiff(file), + deletedLines: "-" + file.deletedLines, + addedLines: "+" + file.addedLines + }, { + fileIcon: hoganUtils.template(iconsBaseTemplatesPath, getFileIcon(file)) + }); + }).join("\n"); + return hoganUtils.render(baseTemplatesPath, "wrapper", { + filesNumber: diffFiles.length, + files + }); +} + +// node_modules/diff2html/lib-esm/line-by-line-renderer.js +init_polyfill_buffer(); +var __assign2 = function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); +}; +var defaultLineByLineRendererConfig = __assign2(__assign2({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath = "generic"; +var baseTemplatesPath2 = "line-by-line"; +var iconsBaseTemplatesPath2 = "icon"; +var tagsBaseTemplatesPath = "tag"; +var LineByLineRenderer = function() { + function LineByLineRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign2(__assign2({}, defaultLineByLineRendererConfig), config); + } + LineByLineRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); + }; + LineByLineRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath2, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath2, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + LineByLineRenderer2.prototype.generateEmptyDiff = function() { + return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { + contentClass: "d2h-code-line", + CSSLineClass + }); + }; + LineByLineRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher2 = newMatcherFn(newDistanceFn(function(e) { + return deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var lines = _this.hoganUtils.render(genericTemplatesPath, "block-header", { + CSSLineClass, + blockHeader: file.isTooBig ? block.header : escapeForHtml(block.header), + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line" + }); + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + lines += left2; + lines += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + lines += _this.generateSingleLineHtml({ + type: CSSLineClass.CONTEXT, + prefix, + content, + oldNumber: line.oldNumber, + newNumber: line.newNumber + }); + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + lines += left; + lines += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return lines; + }).join("\n"); + }; + LineByLineRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + LineByLineRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + }; + LineByLineRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + prefix: diff2.oldLine.prefix, + content: diff2.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : __assign2(__assign2({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + prefix: diff2.newLine.prefix, + content: diff2.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : __assign2(__assign2({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + LineByLineRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleLineHtml(oldLine), + right: this.generateSingleLineHtml(newLine) + }; + }; + LineByLineRenderer2.prototype.generateSingleLineHtml = function(line) { + if (line === void 0) + return ""; + var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath2, "numbers", { + oldNumber: line.oldNumber || "", + newNumber: line.newNumber || "" + }); + return this.hoganUtils.render(genericTemplatesPath, "line", { + type: line.type, + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line", + prefix: line.prefix === " " ? " " : line.prefix, + content: line.content, + lineNumber: lineNumberHtml + }); + }; + return LineByLineRenderer2; +}(); +var line_by_line_renderer_default = LineByLineRenderer; + +// node_modules/diff2html/lib-esm/side-by-side-renderer.js +init_polyfill_buffer(); +var __assign3 = function() { + __assign3 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign3.apply(this, arguments); +}; +var defaultSideBySideRendererConfig = __assign3(__assign3({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath2 = "generic"; +var baseTemplatesPath3 = "side-by-side"; +var iconsBaseTemplatesPath3 = "icon"; +var tagsBaseTemplatesPath2 = "tag"; +var SideBySideRenderer = function() { + function SideBySideRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign3(__assign3({}, defaultSideBySideRendererConfig), config); + } + SideBySideRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath2, "wrapper", { content: diffsHtml }); + }; + SideBySideRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath3, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath2, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath3, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath2, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + SideBySideRenderer2.prototype.generateEmptyDiff = function() { + return { + right: "", + left: this.hoganUtils.render(genericTemplatesPath2, "empty-diff", { + contentClass: "d2h-code-side-line", + CSSLineClass + }) + }; + }; + SideBySideRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher2 = newMatcherFn(newDistanceFn(function(e) { + return deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var fileHtml = { + left: _this.makeHeaderHtml(block.header, file), + right: _this.makeHeaderHtml("") + }; + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + var _b2 = _this.generateLineHtml({ + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.oldNumber + }, { + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.newNumber + }), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + fileHtml.left += left; + fileHtml.right += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return fileHtml; + }).reduce(function(accomulated, html2) { + return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; + }, { left: "", right: "" }); + }; + SideBySideRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + SideBySideRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + }; + SideBySideRenderer2.prototype.makeHeaderHtml = function(blockHeader, file) { + return this.hoganUtils.render(genericTemplatesPath2, "block-header", { + CSSLineClass, + blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : escapeForHtml(blockHeader), + lineClass: "d2h-code-side-linenumber", + contentClass: "d2h-code-side-line" + }); + }; + SideBySideRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + prefix: diff2.oldLine.prefix, + content: diff2.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : __assign3(__assign3({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + prefix: diff2.newLine.prefix, + content: diff2.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : __assign3(__assign3({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + SideBySideRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleHtml(oldLine), + right: this.generateSingleHtml(newLine) + }; + }; + SideBySideRenderer2.prototype.generateSingleHtml = function(line) { + var lineClass = "d2h-code-side-linenumber"; + var contentClass = "d2h-code-side-line"; + return this.hoganUtils.render(genericTemplatesPath2, "line", { + type: (line === null || line === void 0 ? void 0 : line.type) || "".concat(CSSLineClass.CONTEXT, " d2h-emptyplaceholder"), + lineClass: line !== void 0 ? lineClass : "".concat(lineClass, " d2h-code-side-emptyplaceholder"), + contentClass: line !== void 0 ? contentClass : "".concat(contentClass, " d2h-code-side-emptyplaceholder"), + prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, + content: line === null || line === void 0 ? void 0 : line.content, + lineNumber: line === null || line === void 0 ? void 0 : line.number + }); + }; + return SideBySideRenderer2; +}(); +var side_by_side_renderer_default = SideBySideRenderer; + +// node_modules/diff2html/lib-esm/hoganjs-utils.js +init_polyfill_buffer(); +var Hogan3 = __toModule(require_hogan()); + +// node_modules/diff2html/lib-esm/diff2html-templates.js +init_polyfill_buffer(); +var Hogan2 = __toModule(require_hogan()); +var defaultTemplates = {}; +defaultTemplates["file-summary-line"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
  • '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("addedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("deletedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
  • "); + return t.fl(); +}, partials: { "'); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' Files changed ('); + t.b(t.v(t.f("filesNumber", c, p, 0))); + t.b(")"); + t.b("\n" + i); + t.b(' hide'); + t.b("\n" + i); + t.b(' show'); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
      '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("files", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-block-header"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b(t.t(t.f("blockHeader", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-empty-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" File without changes"); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-file-path"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(''); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileDiffName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(t.rp(""); + t.b("\n" + i); + t.b('"); + return t.fl(); +}, partials: { ""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("lineNumber", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + if (t.s(t.f("prefix", c, p, 1), c, p, 0, 162, 238, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("prefix", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("prefix", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('  '); + t.b("\n" + i); + } + ; + if (t.s(t.f("content", c, p, 1), c, p, 0, 371, 445, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("content", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("content", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('
    '); + t.b("\n" + i); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-wrapper"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("content", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("diffs", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-numbers"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b(t.v(t.f("oldNumber", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b(t.v(t.f("newNumber", c, p, 0))); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["side-by-side-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.left", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.right", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('ADDED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('CHANGED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('DELETED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('RENAMED'); + return t.fl(); +}, partials: {}, subs: {} }); + +// node_modules/diff2html/lib-esm/hoganjs-utils.js +var __assign4 = function() { + __assign4 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign4.apply(this, arguments); +}; +var HoganJsUtils = function() { + function HoganJsUtils2(_a2) { + var _b = _a2.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a2.rawTemplates, rawTemplates = _c === void 0 ? {} : _c; + var compiledRawTemplates = Object.entries(rawTemplates).reduce(function(previousTemplates, _a3) { + var _b2; + var name = _a3[0], templateString = _a3[1]; + var compiledTemplate = Hogan3.compile(templateString, { asString: false }); + return __assign4(__assign4({}, previousTemplates), (_b2 = {}, _b2[name] = compiledTemplate, _b2)); + }, {}); + this.preCompiledTemplates = __assign4(__assign4(__assign4({}, defaultTemplates), compiledTemplates), compiledRawTemplates); + } + HoganJsUtils2.compile = function(templateString) { + return Hogan3.compile(templateString, { asString: false }); + }; + HoganJsUtils2.prototype.render = function(namespace, view, params, partials, indent2) { + var templateKey = this.templateKey(namespace, view); + try { + var template = this.preCompiledTemplates[templateKey]; + return template.render(params, partials, indent2); + } catch (e) { + throw new Error("Could not find template to render '".concat(templateKey, "'")); + } + }; + HoganJsUtils2.prototype.template = function(namespace, view) { + return this.preCompiledTemplates[this.templateKey(namespace, view)]; + }; + HoganJsUtils2.prototype.templateKey = function(namespace, view) { + return "".concat(namespace, "-").concat(view); + }; + return HoganJsUtils2; +}(); +var hoganjs_utils_default = HoganJsUtils; + +// node_modules/diff2html/lib-esm/diff2html.js +var __assign5 = function() { + __assign5 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign5.apply(this, arguments); +}; +var defaultDiff2HtmlConfig = __assign5(__assign5(__assign5({}, defaultLineByLineRendererConfig), defaultSideBySideRendererConfig), { outputFormat: OutputFormatType.LINE_BY_LINE, drawFileList: true }); +function html(diffInput, configuration) { + if (configuration === void 0) { + configuration = {}; + } + var config = __assign5(__assign5({}, defaultDiff2HtmlConfig), configuration); + var diffJson = typeof diffInput === "string" ? parse(diffInput, config) : diffInput; + var hoganUtils = new hoganjs_utils_default(config); + var fileList = config.drawFileList ? render(diffJson, hoganUtils) : ""; + var diffOutput = config.outputFormat === "side-by-side" ? new side_by_side_renderer_default(hoganUtils, config).render(diffJson) : new line_by_line_renderer_default(hoganUtils, config).render(diffJson); + return fileList + diffOutput; +} + +// src/ui/diff/diffView.ts +var import_obsidian13 = __toModule(require("obsidian")); +var DiffView = class extends import_obsidian13.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.gettingDiff = false; + this.parser = new DOMParser(); + this.navigation = true; + addEventListener("git-refresh", this.refresh.bind(this)); + } + getViewType() { + return DIFF_VIEW_CONFIG.type; + } + getDisplayText() { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) != null) { + let fileName = this.state.file.split("/").last(); + if (fileName == null ? void 0 : fileName.endsWith(".md")) + fileName = fileName.slice(0, -3); + return DIFF_VIEW_CONFIG.name + ` (${fileName})`; + } + return DIFF_VIEW_CONFIG.name; + } + getIcon() { + return DIFF_VIEW_CONFIG.icon; + } + async setState(state, result) { + this.state = state; + await this.refresh(); + return; + } + getState() { + return this.state; + } + onClose() { + removeEventListener("git-refresh", this.refresh.bind(this)); + return super.onClose(); + } + onOpen() { + this.refresh(); + return super.onOpen(); + } + async refresh() { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) && !this.gettingDiff && this.plugin.gitManager) { + this.gettingDiff = true; + let diff2 = await this.plugin.gitManager.getDiffString(this.state.file, this.state.staged); + this.contentEl.empty(); + if (!diff2) { + const content = await this.app.vault.adapter.read(this.plugin.gitManager.getVaultPath(this.state.file)); + const header = `--- /dev/null ++++ ${this.state.file} +@@ -0,0 +1,${content.split("\n").length} @@`; + diff2 = [...header.split("\n"), ...content.split("\n").map((line) => `+${line}`)].join("\n"); + } + const diffEl = this.parser.parseFromString(html(diff2), "text/html").querySelector(".d2h-file-diff"); + this.contentEl.append(diffEl); + this.gettingDiff = false; + } + } +}; + +// src/ui/modals/branchModal.ts +init_polyfill_buffer(); +var import_obsidian14 = __toModule(require("obsidian")); +var BranchModal = class extends import_obsidian14.FuzzySuggestModal { + constructor(branches) { + super(app); + this.branches = branches; + this.setPlaceholder("Select branch to checkout"); + } + getItems() { + return this.branches; + } + getItemText(item) { + return item; + } + onChooseItem(item, evt) { + this.resolve(item); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + async onClose() { + await new Promise((resolve) => setTimeout(resolve, 10)); + if (this.resolve) + this.resolve(void 0); + } +}; + +// src/ui/modals/ignoreModal.ts +init_polyfill_buffer(); +var import_obsidian15 = __toModule(require("obsidian")); +var IgnoreModal = class extends import_obsidian15.Modal { + constructor(app2, content) { + super(app2); + this.content = content; + this.resolve = null; + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText("Edit .gitignore"); + const div = contentEl.createDiv(); + const text2 = div.createEl("textarea", { + text: this.content, + cls: ["obsidian-git-textarea"], + attr: { rows: 10, cols: 30, wrap: "off" } + }); + div.createEl("button", { + cls: ["mod-cta", "obsidian-git-center-button"], + text: "Save" + }).addEventListener("click", async () => { + this.resolve(text2.value); + this.close(); + }); + } + onClose() { + const { contentEl } = this; + this.resolve(void 0); + contentEl.empty(); + } +}; + +// src/ui/sidebar/sidebarView.ts +init_polyfill_buffer(); +var import_obsidian22 = __toModule(require("obsidian")); + +// src/ui/sidebar/gitView.svelte +init_polyfill_buffer(); + +// node_modules/svelte/internal/index.mjs +init_polyfill_buffer(); +function noop() { +} +var identity = (x) => x; +function run(fn) { + return fn(); +} +function blank_object() { + return Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function is_function(thing) { + return typeof thing === "function"; +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function"); +} +function is_empty(obj) { + return Object.keys(obj).length === 0; +} +var is_client = typeof window !== "undefined"; +var now = is_client ? () => window.performance.now() : () => Date.now(); +var raf = is_client ? (cb) => requestAnimationFrame(cb) : noop; +var tasks = new Set(); +function run_tasks(now2) { + tasks.forEach((task) => { + if (!task.c(now2)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); +} +function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise((fulfill) => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; +} +var is_hydrating = false; +function start_hydrating() { + is_hydrating = true; +} +function end_hydrating() { + is_hydrating = false; +} +function append2(target, node) { + target.appendChild(node); +} +function append_styles(target, style_sheet_id, styles) { + const append_styles_to = get_root_for_style(target); + if (!append_styles_to.getElementById(style_sheet_id)) { + const style = element("style"); + style.id = style_sheet_id; + style.textContent = styles; + append_stylesheet(append_styles_to, style); + } +} +function get_root_for_style(node) { + if (!node) + return document; + const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root && root.host) { + return root; + } + return node.ownerDocument; +} +function append_empty_stylesheet(node) { + const style_element = element("style"); + append_stylesheet(get_root_for_style(node), style_element); + return style_element.sheet; +} +function append_stylesheet(node, style) { + append2(node.head || node, style); + return style.sheet; +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + if (node.parentNode) { + node.parentNode.removeChild(node); + } +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(" "); +} +function empty() { + return text(""); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function self2(fn) { + return function(event) { + if (event.target === this) + fn.call(this, event); + }; +} +function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); +} +function children(element2) { + return Array.from(element2.childNodes); +} +function set_data(text2, data) { + data = "" + data; + if (text2.wholeText !== data) + text2.data = data; +} +function set_input_value(input, value) { + input.value = value == null ? "" : value; +} +function set_style(node, key2, value, important) { + if (value === null) { + node.style.removeProperty(key2); + } else { + node.style.setProperty(key2, value, important ? "important" : ""); + } +} +function toggle_class(element2, name, toggle) { + element2.classList[toggle ? "add" : "remove"](name); +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + const e = document.createEvent("CustomEvent"); + e.initCustomEvent(type, bubbles, cancelable, detail); + return e; +} +var managed_styles = new Map(); +var active = 0; +function hash(str) { + let hash2 = 5381; + let i = str.length; + while (i--) + hash2 = (hash2 << 5) - hash2 ^ str.charCodeAt(i); + return hash2 >>> 0; +} +function create_style_information(doc, node) { + const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; + managed_styles.set(doc, info); + return info; +} +function create_rule(node, a, b, duration, delay2, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = "{\n"; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}} +`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}} +}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + if (!rules[name]) { + rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ""; + node.style.animation = `${animation ? `${animation}, ` : ""}${name} ${duration}ms linear ${delay2}ms 1 both`; + active += 1; + return name; +} +function delete_rule(node, name) { + const previous = (node.style.animation || "").split(", "); + const next = previous.filter(name ? (anim) => anim.indexOf(name) < 0 : (anim) => anim.indexOf("__svelte") === -1); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(", "); + active -= deleted; + if (!active) + clear_rules(); + } +} +function clear_rules() { + raf(() => { + if (active) + return; + managed_styles.forEach((info) => { + const { ownerNode } = info.stylesheet; + if (ownerNode) + detach(ownerNode); + }); + managed_styles.clear(); + }); +} +var current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error("Function called outside component initialization"); + return current_component; +} +function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); +} +function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + callbacks.slice().forEach((fn) => fn.call(this, event)); + } +} +var dirty_components = []; +var binding_callbacks = []; +var render_callbacks = []; +var flush_callbacks = []; +var resolved_promise = Promise.resolve(); +var update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +var seen_callbacks = new Set(); +var flushidx = 0; +function flush() { + const saved_component = current_component; + do { + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +var promise; +function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; +} +function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? "intro" : "outro"}${kind}`)); +} +var outroing = new Set(); +var outros; +function group_outros() { + outros = { + r: 0, + c: [], + p: outros + }; +} +function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; +} +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} +function transition_out(block, local, detach2, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach2) + block.d(1); + callback(); + } + }); + block.o(local); + } else if (callback) { + callback(); + } +} +var null_transition = { duration: 0 }; +function create_bidirectional_transition(node, fn, params, intro) { + const options = { direction: "both" }; + let config = fn(node, params, options); + let t = intro ? 0 : 1; + let running_program = null; + let pending_program = null; + let animation_name = null; + function clear_animation() { + if (animation_name) + delete_rule(node, animation_name); + } + function init3(program, duration) { + const d = program.b - t; + duration *= Math.abs(d); + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + function go(b) { + const { delay: delay2 = 0, duration = 300, easing = identity, tick: tick2 = noop, css } = config || null_transition; + const program = { + start: now() + delay2, + b + }; + if (!b) { + program.group = outros; + outros.r += 1; + } + if (running_program || pending_program) { + pending_program = program; + } else { + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay2, easing, css); + } + if (b) + tick2(0, 1); + running_program = init3(program, duration); + add_render_callback(() => dispatch(node, b, "start")); + loop((now2) => { + if (pending_program && now2 > pending_program.start) { + running_program = init3(pending_program, duration); + pending_program = null; + dispatch(node, running_program.b, "start"); + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + if (running_program) { + if (now2 >= running_program.end) { + tick2(t = running_program.b, 1 - t); + dispatch(node, running_program.b, "end"); + if (!pending_program) { + if (running_program.b) { + clear_animation(); + } else { + if (!--running_program.group.r) + run_all(running_program.group.c); + } + } + running_program = null; + } else if (now2 >= running_program.start) { + const p = now2 - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick2(t, 1 - t); + } + } + return !!(running_program || pending_program); + }); + } + } + return { + run(b) { + if (is_function(config)) { + wait().then(() => { + config = config(options); + go(b); + }); + } else { + go(b); + } + }, + end() { + clear_animation(); + running_program = pending_program = null; + } + }; +} +var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : global; +var boolean_attributes = new Set([ + "allowfullscreen", + "allowpaymentrequest", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "hidden", + "inert", + "ismap", + "itemscope", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected" +]); +function create_component(block) { + block && block.c(); +} +function mount_component(component, target, anchor, customElement) { + const { fragment, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } else { + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[i / 31 | 0] |= 1 << i % 31; +} +function init2(component, options, instance6, create_fragment6, not_equal, props, append_styles2, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + props, + update: noop, + not_equal, + bound: blank_object(), + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles2 && append_styles2($$.root); + let ready = false; + $$.ctx = instance6 ? instance6(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) : []; + $$.update(); + ready = true; + run_all($$.before_update); + $$.fragment = create_fragment6 ? create_fragment6($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + start_hydrating(); + const nodes = children(options.target); + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } else { + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + end_hydrating(); + flush(); + } + set_current_component(parent_component); +} +var SvelteElement; +if (typeof HTMLElement === "function") { + SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: "open" }); + } + connectedCallback() { + const { on_mount } = this.$$; + this.$$.on_disconnect = on_mount.map(run).filter(is_function); + for (const key2 in this.$$.slotted) { + this.appendChild(this.$$.slotted[key2]); + } + } + attributeChangedCallback(attr2, _oldValue, newValue) { + this[attr2] = newValue; + } + disconnectedCallback() { + run_all(this.$$.on_disconnect); + } + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + if (!is_function(callback)) { + return noop; + } + const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); + callbacks.push(callback); + return () => { + const index2 = callbacks.indexOf(callback); + if (index2 !== -1) + callbacks.splice(index2, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + }; +} +var SvelteComponent = class { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + if (!is_function(callback)) { + return noop; + } + const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); + callbacks.push(callback); + return () => { + const index2 = callbacks.indexOf(callback); + if (index2 !== -1) + callbacks.splice(index2, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } +}; + +// src/ui/sidebar/gitView.svelte +var import_obsidian21 = __toModule(require("obsidian")); + +// node_modules/svelte/index.mjs +init_polyfill_buffer(); + +// node_modules/svelte/transition/index.mjs +init_polyfill_buffer(); + +// node_modules/svelte/easing/index.mjs +init_polyfill_buffer(); +function cubicOut(t) { + const f = t - 1; + return f * f * f + 1; +} + +// node_modules/svelte/transition/index.mjs +function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + return { + delay: delay2, + duration, + easing, + css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};height: ${t * height}px;padding-top: ${t * padding_top}px;padding-bottom: ${t * padding_bottom}px;margin-top: ${t * margin_top}px;margin-bottom: ${t * margin_bottom}px;border-top-width: ${t * border_top_width}px;border-bottom-width: ${t * border_bottom_width}px;` + }; +} + +// src/ui/modals/discardModal.ts +init_polyfill_buffer(); +var import_obsidian16 = __toModule(require("obsidian")); +var DiscardModal = class extends import_obsidian16.Modal { + constructor(app2, deletion, filename) { + super(app2); + this.deletion = deletion; + this.filename = filename; + this.resolve = null; + } + myOpen() { + this.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText(`${this.deletion ? "Delete" : "Discard"} this file?`); + contentEl.createEl("h4").setText(`Do you really want to ${this.deletion ? "delete" : "discard the changes of"} "${this.filename}"`); + const div = contentEl.createDiv(); + div.addClass("obsidian-git-center"); + div.createEl("button", { + text: "Cancel", + attr: { + style: "margin: 0 10px" + } + }).addEventListener("click", () => { + if (this.resolve) + this.resolve(false); + return this.close(); + }); + div.createEl("button", { + cls: "mod-cta", + text: "Confirm", + attr: { + style: "margin: 0 10px" + } + }).addEventListener("click", async () => { + if (this.resolve) + this.resolve(true); + this.close(); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +}; + +// src/ui/sidebar/components/fileComponent.svelte +init_polyfill_buffer(); +var import_obsidian18 = __toModule(require("obsidian")); + +// node_modules/obsidian-community-lib/dist/index.js +init_polyfill_buffer(); + +// node_modules/obsidian-community-lib/dist/utils.js +init_polyfill_buffer(); +var feather = __toModule(require_feather()); +var import_obsidian17 = __toModule(require("obsidian")); +function hoverPreview(event, view, to) { + const targetEl = event.target; + app.workspace.trigger("hover-link", { + event, + source: view.getViewType(), + hoverParent: view, + targetEl, + linktext: to + }); +} + +// src/ui/sidebar/components/fileComponent.svelte +function add_css(target) { + append_styles(target, "svelte-wn85nz", "main.svelte-wn85nz .nav-file-title-content.svelte-wn85nz.svelte-wn85nz{display:flex;align-items:center}main.svelte-wn85nz .tools.svelte-wn85nz.svelte-wn85nz{display:flex;margin-left:auto}main.svelte-wn85nz .tools .type.svelte-wn85nz.svelte-wn85nz{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}main.svelte-wn85nz .tools .type[data-type=M].svelte-wn85nz.svelte-wn85nz{color:orange}main.svelte-wn85nz .tools .type[data-type=D].svelte-wn85nz.svelte-wn85nz{color:red}main.svelte-wn85nz .tools .buttons.svelte-wn85nz.svelte-wn85nz{display:flex}main.svelte-wn85nz .tools .buttons.svelte-wn85nz>.svelte-wn85nz{padding:0 0;height:auto}"); +} +function create_if_block(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon svelte-wn85nz"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[11](div); + if (!mounted) { + dispose = [ + listen(div, "auxclick", ctx[5]), + listen(div, "click", ctx[5]) + ]; + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) + detach(div); + ctx[11](null); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment(ctx) { + var _a2; + let main; + let div6; + let div0; + let t0_value = ((_a2 = ctx[0].vault_path.split("/").last()) == null ? void 0 : _a2.replace(".md", "")) + ""; + let t0; + let t1; + let div5; + let div3; + let show_if = ctx[1].app.vault.getAbstractFileByPath(ctx[0].vault_path); + let t2; + let div1; + let t3; + let div2; + let t4; + let div4; + let t5_value = ctx[0].working_dir + ""; + let t5; + let div4_data_type_value; + let div6_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block(ctx); + return { + c() { + main = element("main"); + div6 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div5 = element("div"); + div3 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + div1 = element("div"); + t3 = space(); + div2 = element("div"); + t4 = space(); + div4 = element("div"); + t5 = text(t5_value); + attr(div0, "class", "nav-file-title-content svelte-wn85nz"); + attr(div1, "data-icon", "undo"); + attr(div1, "aria-label", "Discard"); + attr(div1, "class", "clickable-icon svelte-wn85nz"); + attr(div2, "data-icon", "plus"); + attr(div2, "aria-label", "Stage"); + attr(div2, "class", "clickable-icon svelte-wn85nz"); + attr(div3, "class", "buttons svelte-wn85nz"); + attr(div4, "class", "type svelte-wn85nz"); + attr(div4, "data-type", div4_data_type_value = ctx[0].working_dir); + attr(div5, "class", "tools svelte-wn85nz"); + attr(div6, "class", "nav-file-title"); + attr(div6, "aria-label-position", ctx[3]); + attr(div6, "aria-label", div6_aria_label_value = ctx[0].vault_path.split("/").last() != ctx[0].vault_path ? ctx[0].vault_path : ""); + attr(main, "class", "nav-file svelte-wn85nz"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div6); + append2(div6, div0); + append2(div0, t0); + append2(div6, t1); + append2(div6, div5); + append2(div5, div3); + if (if_block) + if_block.m(div3, null); + append2(div3, t2); + append2(div3, div1); + ctx[12](div1); + append2(div3, t3); + append2(div3, div2); + ctx[13](div2); + append2(div5, t4); + append2(div5, div4); + append2(div4, t5); + if (!mounted) { + dispose = [ + listen(div0, "click", ctx[7]), + listen(div0, "auxclick", ctx[7]), + listen(div1, "click", ctx[8]), + listen(div2, "click", ctx[6]), + listen(div6, "click", self2(ctx[7])), + listen(div6, "auxclick", self2(ctx[7])), + listen(main, "mouseover", ctx[4]), + listen(main, "click", self2(ctx[7])), + listen(main, "focus", ctx[10]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a3; + if (dirty & 1 && t0_value !== (t0_value = ((_a3 = ctx2[0].vault_path.split("/").last()) == null ? void 0 : _a3.replace(".md", "")) + "")) + set_data(t0, t0_value); + if (dirty & 3) + show_if = ctx2[1].app.vault.getAbstractFileByPath(ctx2[0].vault_path); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block(ctx2); + if_block.c(); + if_block.m(div3, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & 1 && t5_value !== (t5_value = ctx2[0].working_dir + "")) + set_data(t5, t5_value); + if (dirty & 1 && div4_data_type_value !== (div4_data_type_value = ctx2[0].working_dir)) { + attr(div4, "data-type", div4_data_type_value); + } + if (dirty & 8) { + attr(div6, "aria-label-position", ctx2[3]); + } + if (dirty & 1 && div6_aria_label_value !== (div6_aria_label_value = ctx2[0].vault_path.split("/").last() != ctx2[0].vault_path ? ctx2[0].vault_path : "")) { + attr(div6, "aria-label", div6_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(main); + if (if_block) + if_block.d(); + ctx[12](null); + ctx[13](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian18.setIcon)(b, b.getAttr("data-icon"))), 0); + function hover(event) { + if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { + hoverPreview(event, view, change.vault_path.split("/").last().replace(".md", "")); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + console.log(event); + if (file instanceof import_obsidian18.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function stage() { + manager.stage(change.path, false).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: false } + }); + } + function discard() { + const deleteFile = change.working_dir == "U"; + new DiscardModal(view.app, deleteFile, change.vault_path).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + if (deleteFile) { + view.app.vault.adapter.remove(change.vault_path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } else { + manager.discard(change.path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + } + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) + $$invalidate(9, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 2) { + $: + $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + side, + hover, + open, + stage, + showDiff, + discard, + manager, + focus_handler, + div_binding, + div1_binding, + div2_binding + ]; +} +var FileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance, create_fragment, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css); + } +}; +var fileComponent_default = FileComponent; + +// src/ui/sidebar/components/pulledFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian19 = __toModule(require("obsidian")); +function add_css2(target) { + append_styles(target, "svelte-sajhpp", "main.svelte-sajhpp .nav-file-title-content.svelte-sajhpp{display:flex;align-items:center}main.svelte-sajhpp .tools.svelte-sajhpp{display:flex;margin-left:auto}main.svelte-sajhpp .tools .type.svelte-sajhpp{padding-left:var(--size-2-1);display:flex;align-items:center;justify-content:center}main.svelte-sajhpp .tools .type[data-type=M].svelte-sajhpp{color:orange}main.svelte-sajhpp .tools .type[data-type=D].svelte-sajhpp{color:red}"); +} +function create_fragment2(ctx) { + var _a2; + let main; + let div2; + let div0; + let t0_value = ((_a2 = ctx[0].vault_path.split("/").last()) == null ? void 0 : _a2.replace(".md", "")) + ""; + let t0; + let t1; + let div1; + let span; + let t2_value = ctx[0].working_dir + ""; + let t2; + let span_data_type_value; + let div2_aria_label_value; + let mounted; + let dispose; + return { + c() { + main = element("main"); + div2 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div1 = element("div"); + span = element("span"); + t2 = text(t2_value); + attr(div0, "class", "nav-file-title-content svelte-sajhpp"); + attr(span, "class", "type svelte-sajhpp"); + attr(span, "data-type", span_data_type_value = ctx[0].working_dir); + attr(div1, "class", "tools svelte-sajhpp"); + attr(div2, "class", "nav-file-title"); + attr(div2, "aria-label-position", ctx[1]); + attr(div2, "aria-label", div2_aria_label_value = ctx[0].vault_path.split("/").last() != ctx[0].vault_path ? ctx[0].vault_path : ""); + attr(main, "class", "nav-file svelte-sajhpp"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div2); + append2(div2, div0); + append2(div0, t0); + append2(div2, t1); + append2(div2, div1); + append2(div1, span); + append2(span, t2); + if (!mounted) { + dispose = [ + listen(main, "mouseover", ctx[2]), + listen(main, "click", ctx[3]), + listen(main, "focus", ctx[5]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a3; + if (dirty & 1 && t0_value !== (t0_value = ((_a3 = ctx2[0].vault_path.split("/").last()) == null ? void 0 : _a3.replace(".md", "")) + "")) + set_data(t0, t0_value); + if (dirty & 1 && t2_value !== (t2_value = ctx2[0].working_dir + "")) + set_data(t2, t2_value); + if (dirty & 1 && span_data_type_value !== (span_data_type_value = ctx2[0].working_dir)) { + attr(span, "data-type", span_data_type_value); + } + if (dirty & 2) { + attr(div2, "aria-label-position", ctx2[1]); + } + if (dirty & 1 && div2_aria_label_value !== (div2_aria_label_value = ctx2[0].vault_path.split("/").last() != ctx2[0].vault_path ? ctx2[0].vault_path : "")) { + attr(div2, "aria-label", div2_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(main); + mounted = false; + run_all(dispose); + } + }; +} +function instance2($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + function hover(event) { + if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { + hoverPreview(event, view, change.vault_path.split("/").last().replace(".md", "")); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian19.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(4, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 16) { + $: + $$invalidate(1, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [change, side, hover, open, view, focus_handler]; +} +var PulledFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance2, create_fragment2, safe_not_equal, { change: 0, view: 4 }, add_css2); + } +}; +var pulledFileComponent_default = PulledFileComponent; + +// src/ui/sidebar/components/stagedFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian20 = __toModule(require("obsidian")); +function add_css3(target) { + append_styles(target, "svelte-wn85nz", "main.svelte-wn85nz .nav-file-title-content.svelte-wn85nz.svelte-wn85nz{display:flex;align-items:center}main.svelte-wn85nz .tools.svelte-wn85nz.svelte-wn85nz{display:flex;margin-left:auto}main.svelte-wn85nz .tools .type.svelte-wn85nz.svelte-wn85nz{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}main.svelte-wn85nz .tools .type[data-type=M].svelte-wn85nz.svelte-wn85nz{color:orange}main.svelte-wn85nz .tools .type[data-type=D].svelte-wn85nz.svelte-wn85nz{color:red}main.svelte-wn85nz .tools .buttons.svelte-wn85nz.svelte-wn85nz{display:flex}main.svelte-wn85nz .tools .buttons.svelte-wn85nz>.svelte-wn85nz{padding:0 0;height:auto}"); +} +function create_if_block2(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon svelte-wn85nz"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[11](div); + if (!mounted) { + dispose = listen(div, "click", ctx[6]); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) + detach(div); + ctx[11](null); + mounted = false; + dispose(); + } + }; +} +function create_fragment3(ctx) { + var _a2; + let main; + let div5; + let div0; + let t0_value = ((_a2 = ctx[3].split("/").last()) == null ? void 0 : _a2.replace(".md", "")) + ""; + let t0; + let t1; + let div4; + let div2; + let show_if = ctx[1].app.vault.getAbstractFileByPath(ctx[3]); + let t2; + let div1; + let t3; + let div3; + let t4_value = ctx[0].index + ""; + let t4; + let div3_data_type_value; + let div5_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block2(ctx); + return { + c() { + main = element("main"); + div5 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div4 = element("div"); + div2 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + div1 = element("div"); + t3 = space(); + div3 = element("div"); + t4 = text(t4_value); + attr(div0, "class", "nav-file-title-content svelte-wn85nz"); + attr(div1, "data-icon", "minus"); + attr(div1, "aria-label", "Unstage"); + attr(div1, "class", "clickable-icon svelte-wn85nz"); + attr(div2, "class", "buttons svelte-wn85nz"); + attr(div3, "class", "type svelte-wn85nz"); + attr(div3, "data-type", div3_data_type_value = ctx[0].index); + attr(div4, "class", "tools svelte-wn85nz"); + attr(div5, "class", "nav-file-title"); + attr(div5, "aria-label-position", ctx[4]); + attr(div5, "aria-label", div5_aria_label_value = ctx[3].split("/").last() != ctx[3] ? ctx[3] : ""); + attr(main, "class", "nav-file svelte-wn85nz"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div5); + append2(div5, div0); + append2(div0, t0); + append2(div5, t1); + append2(div5, div4); + append2(div4, div2); + if (if_block) + if_block.m(div2, null); + append2(div2, t2); + append2(div2, div1); + ctx[12](div1); + append2(div4, t3); + append2(div4, div3); + append2(div3, t4); + if (!mounted) { + dispose = [ + listen(div0, "click", ctx[7]), + listen(div0, "auxclick", ctx[7]), + listen(div1, "click", ctx[8]), + listen(div5, "click", self2(ctx[7])), + listen(main, "mouseover", ctx[5]), + listen(main, "focus", ctx[10]), + listen(main, "click", self2(ctx[7])) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a3; + if (dirty & 8 && t0_value !== (t0_value = ((_a3 = ctx2[3].split("/").last()) == null ? void 0 : _a3.replace(".md", "")) + "")) + set_data(t0, t0_value); + if (dirty & 10) + show_if = ctx2[1].app.vault.getAbstractFileByPath(ctx2[3]); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block2(ctx2); + if_block.c(); + if_block.m(div2, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & 1 && t4_value !== (t4_value = ctx2[0].index + "")) + set_data(t4, t4_value); + if (dirty & 1 && div3_data_type_value !== (div3_data_type_value = ctx2[0].index)) { + attr(div3, "data-type", div3_data_type_value); + } + if (dirty & 16) { + attr(div5, "aria-label-position", ctx2[4]); + } + if (dirty & 8 && div5_aria_label_value !== (div5_aria_label_value = ctx2[3].split("/").last() != ctx2[3] ? ctx2[3] : "")) { + attr(div5, "aria-label", div5_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(main); + if (if_block) + if_block.d(); + ctx[12](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance3($$self, $$props, $$invalidate) { + let formattedPath; + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian20.setIcon)(b, b.getAttr("data-icon"), 16)), 0); + function hover(event) { + if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { + hoverPreview(event, view, formattedPath.split("/").last().replace(".md", "")); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian20.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: true } + }); + } + function unstage() { + manager.unstage(change.path, false).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) + $$invalidate(9, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 1) { + $: + $$invalidate(3, formattedPath = change.vault_path); + } + if ($$self.$$.dirty & 2) { + $: + $$invalidate(4, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + formattedPath, + side, + hover, + open, + showDiff, + unstage, + manager, + focus_handler, + div_binding, + div1_binding + ]; +} +var StagedFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance3, create_fragment3, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css3); + } +}; +var stagedFileComponent_default = StagedFileComponent; + +// src/ui/sidebar/components/treeComponent.svelte +init_polyfill_buffer(); +function add_css4(target) { + append_styles(target, "svelte-148wteu", "main.svelte-148wteu .nav-folder-title-content.svelte-148wteu.svelte-148wteu{display:flex;align-items:center}main.svelte-148wteu .tools.svelte-148wteu.svelte-148wteu{display:flex;margin-left:auto}main.svelte-148wteu .tools .buttons.svelte-148wteu.svelte-148wteu{display:flex}main.svelte-148wteu .tools .buttons.svelte-148wteu>.svelte-148wteu{padding:0 0;height:auto}"); +} +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[17] = list[i]; + return child_ctx; +} +function create_else_block(ctx) { + let div7; + let div6; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2_value = ctx[17].title + ""; + let t2; + let t3; + let div5; + let div4; + let t4; + let div3; + let div6_aria_label_value; + let t5; + let t6; + let current; + let mounted; + let dispose; + function click_handler() { + return ctx[11](ctx[17]); + } + function click_handler_1() { + return ctx[12](ctx[17]); + } + function select_block_type_2(ctx2, dirty) { + if (ctx2[3] == FileType.staged) + return create_if_block_5; + return create_else_block_1; + } + let current_block_type = select_block_type_2(ctx, -1); + let if_block0 = current_block_type(ctx); + function click_handler_5() { + return ctx[16](ctx[17]); + } + let if_block1 = !ctx[5][ctx[17].title] && create_if_block_4(ctx); + return { + c() { + div7 = element("div"); + div6 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + div1.innerHTML = ``; + t1 = space(); + div2 = element("div"); + t2 = text(t2_value); + t3 = space(); + div5 = element("div"); + div4 = element("div"); + if_block0.c(); + t4 = space(); + div3 = element("div"); + t5 = space(); + if (if_block1) + if_block1.c(); + t6 = space(); + attr(div0, "data-icon", "folder"); + set_style(div0, "padding-right", "5px"); + set_style(div0, "display", "flex"); + attr(div1, "class", "nav-folder-collapse-indicator collapse-icon"); + attr(div2, "class", "nav-folder-title-content svelte-148wteu"); + set_style(div3, "width", "11px"); + attr(div3, "class", "svelte-148wteu"); + attr(div4, "class", "buttons svelte-148wteu"); + attr(div5, "class", "tools svelte-148wteu"); + attr(div6, "class", "nav-folder-title"); + attr(div6, "aria-label-position", ctx[6]); + attr(div6, "aria-label", div6_aria_label_value = ctx[17].vaultPath.split("/").last() != ctx[17].vaultPath ? ctx[17].vaultPath : ""); + attr(div7, "class", "nav-folder"); + toggle_class(div7, "is-collapsed", ctx[5][ctx[17].title]); + }, + m(target, anchor) { + insert(target, div7, anchor); + append2(div7, div6); + append2(div6, div0); + append2(div6, t0); + append2(div6, div1); + append2(div6, t1); + append2(div6, div2); + append2(div2, t2); + append2(div6, t3); + append2(div6, div5); + append2(div5, div4); + if_block0.m(div4, null); + append2(div4, t4); + append2(div4, div3); + append2(div7, t5); + if (if_block1) + if_block1.m(div7, null); + append2(div7, t6); + current = true; + if (!mounted) { + dispose = [ + listen(div1, "click", click_handler), + listen(div2, "click", click_handler_1), + listen(div6, "click", self2(click_handler_5)) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if ((!current || dirty & 1) && t2_value !== (t2_value = ctx[17].title + "")) + set_data(t2, t2_value); + if (current_block_type === (current_block_type = select_block_type_2(ctx, dirty)) && if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); + if (if_block0) { + if_block0.c(); + if_block0.m(div4, t4); + } + } + if (!current || dirty & 64) { + attr(div6, "aria-label-position", ctx[6]); + } + if (!current || dirty & 1 && div6_aria_label_value !== (div6_aria_label_value = ctx[17].vaultPath.split("/").last() != ctx[17].vaultPath ? ctx[17].vaultPath : "")) { + attr(div6, "aria-label", div6_aria_label_value); + } + if (!ctx[5][ctx[17].title]) { + if (if_block1) { + if_block1.p(ctx, dirty); + if (dirty & 33) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_4(ctx); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div7, t6); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty & 33) { + toggle_class(div7, "is-collapsed", ctx[5][ctx[17].title]); + } + }, + i(local) { + if (current) + return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) + detach(div7); + if_block0.d(); + if (if_block1) + if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block3(ctx) { + let div; + let current_block_type_index; + let if_block; + let t; + let current; + const if_block_creators = [create_if_block_1, create_if_block_2, create_if_block_3]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if (ctx2[3] == FileType.staged) + return 0; + if (ctx2[3] == FileType.changed) + return 1; + if (ctx2[3] == FileType.pulled) + return 2; + return -1; + } + if (~(current_block_type_index = select_block_type_1(ctx, -1))) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + } + return { + c() { + div = element("div"); + if (if_block) + if_block.c(); + t = space(); + }, + m(target, anchor) { + insert(target, div, anchor); + if (~current_block_type_index) { + if_blocks[current_block_type_index].m(div, null); + } + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if (~current_block_type_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } + } else { + if (if_block) { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + } + if (~current_block_type_index) { + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, t); + } else { + if_block = null; + } + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if (~current_block_type_index) { + if_blocks[current_block_type_index].d(); + } + } + }; +} +function create_else_block_1(ctx) { + let div0; + let t; + let div1; + let mounted; + let dispose; + function click_handler_3() { + return ctx[14](ctx[17]); + } + function click_handler_4() { + return ctx[15](ctx[17]); + } + return { + c() { + div0 = element("div"); + div0.innerHTML = ``; + t = space(); + div1 = element("div"); + div1.innerHTML = ``; + attr(div0, "data-icon", "undo"); + attr(div0, "aria-label", "Discard"); + attr(div0, "class", "clickable-icon svelte-148wteu"); + attr(div1, "data-icon", "plus"); + attr(div1, "aria-label", "Stage"); + attr(div1, "class", "clickable-icon svelte-148wteu"); + }, + m(target, anchor) { + insert(target, div0, anchor); + insert(target, t, anchor); + insert(target, div1, anchor); + if (!mounted) { + dispose = [ + listen(div0, "click", click_handler_3), + listen(div1, "click", click_handler_4) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) + detach(div0); + if (detaching) + detach(t); + if (detaching) + detach(div1); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_5(ctx) { + let div; + let mounted; + let dispose; + function click_handler_2() { + return ctx[13](ctx[17]); + } + return { + c() { + div = element("div"); + div.innerHTML = ``; + attr(div, "data-icon", "minus"); + attr(div, "aria-label", "Unstage"); + attr(div, "class", "clickable-icon svelte-148wteu"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen(div, "click", click_handler_2); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) + detach(div); + mounted = false; + dispose(); + } + }; +} +function create_if_block_4(ctx) { + let div; + let treecomponent; + let div_transition; + let current; + treecomponent = new TreeComponent({ + props: { + hierarchy: ctx[17], + plugin: ctx[1], + view: ctx[2], + fileType: ctx[3] + } + }); + return { + c() { + div = element("div"); + create_component(treecomponent.$$.fragment); + attr(div, "class", "nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(treecomponent, div, null); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty & 1) + treecomponent_changes.hierarchy = ctx2[17]; + if (dirty & 2) + treecomponent_changes.plugin = ctx2[1]; + if (dirty & 4) + treecomponent_changes.view = ctx2[2]; + if (dirty & 8) + treecomponent_changes.fileType = ctx2[3]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + destroy_component(treecomponent); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_if_block_3(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ctx[17].statusResult, + view: ctx[2] + } + }); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty & 1) + pulledfilecomponent_changes.change = ctx2[17].statusResult; + if (dirty & 4) + pulledfilecomponent_changes.view = ctx2[2]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_if_block_2(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ctx[17].statusResult, + manager: ctx[1].gitManager, + view: ctx[2] + } + }); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty & 1) + filecomponent_changes.change = ctx2[17].statusResult; + if (dirty & 2) + filecomponent_changes.manager = ctx2[1].gitManager; + if (dirty & 4) + filecomponent_changes.view = ctx2[2]; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_1(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ctx[17].statusResult, + manager: ctx[1].gitManager, + view: ctx[2] + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty & 1) + stagedfilecomponent_changes.change = ctx2[17].statusResult; + if (dirty & 2) + stagedfilecomponent_changes.manager = ctx2[1].gitManager; + if (dirty & 4) + stagedfilecomponent_changes.view = ctx2[2]; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_each_block(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block3, create_else_block]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if (ctx2[17].statusResult) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if_blocks[current_block_type_index].d(detaching); + if (detaching) + detach(if_block_anchor); + } + }; +} +function create_fragment4(ctx) { + let main; + let current; + let each_value = ctx[0].children; + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + main = element("main"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(main, "class", "svelte-148wteu"); + toggle_class(main, "topLevel", ctx[4]); + }, + m(target, anchor) { + insert(target, main, anchor); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(main, null); + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & 2031) { + each_value = ctx2[0].children; + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(main, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + if (!current || dirty & 16) { + toggle_class(main, "topLevel", ctx2[4]); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(main); + destroy_each(each_blocks, detaching); + } + }; +} +function instance4($$self, $$props, $$invalidate) { + let side; + let { hierarchy } = $$props; + let { plugin } = $$props; + let { view } = $$props; + let { fileType } = $$props; + let { topLevel = false } = $$props; + const closed = {}; + function stage(path2) { + plugin.gitManager.stageAll({ dir: path2 }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function unstage(path2) { + plugin.gitManager.unstageAll({ dir: path2 }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function discard(item) { + new DiscardModal(view.app, false, item.vaultPath).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + plugin.gitManager.discardAll({ + dir: item.path, + status: plugin.cachedStatus + }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + }); + } + function fold(item) { + $$invalidate(5, closed[item.title] = !closed[item.title], closed); + } + const click_handler = (entity) => fold(entity); + const click_handler_1 = (entity) => fold(entity); + const click_handler_2 = (entity) => unstage(entity.path); + const click_handler_3 = (entity) => discard(entity); + const click_handler_4 = (entity) => stage(entity.path); + const click_handler_5 = (entity) => fold(entity); + $$self.$$set = ($$props2) => { + if ("hierarchy" in $$props2) + $$invalidate(0, hierarchy = $$props2.hierarchy); + if ("plugin" in $$props2) + $$invalidate(1, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(2, view = $$props2.view); + if ("fileType" in $$props2) + $$invalidate(3, fileType = $$props2.fileType); + if ("topLevel" in $$props2) + $$invalidate(4, topLevel = $$props2.topLevel); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 4) { + $: + $$invalidate(6, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + hierarchy, + plugin, + view, + fileType, + topLevel, + closed, + side, + stage, + unstage, + discard, + fold, + click_handler, + click_handler_1, + click_handler_2, + click_handler_3, + click_handler_4, + click_handler_5 + ]; +} +var TreeComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance4, create_fragment4, safe_not_equal, { + hierarchy: 0, + plugin: 1, + view: 2, + fileType: 3, + topLevel: 4 + }, add_css4); + } +}; +var treeComponent_default = TreeComponent; + +// src/ui/sidebar/gitView.svelte +function add_css5(target) { + append_styles(target, "svelte-fnxzfa", `.commit-msg-input.svelte-fnxzfa.svelte-fnxzfa.svelte-fnxzfa{width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field)}.git-commit-msg.svelte-fnxzfa.svelte-fnxzfa.svelte-fnxzfa{position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto}main.svelte-fnxzfa .tools.svelte-fnxzfa.svelte-fnxzfa{display:flex;margin-left:auto}main.svelte-fnxzfa .tools .buttons.svelte-fnxzfa.svelte-fnxzfa{display:flex}main.svelte-fnxzfa .tools .buttons.svelte-fnxzfa>.svelte-fnxzfa{padding:0 0;height:auto}main.svelte-fnxzfa .tools .files-count.svelte-fnxzfa.svelte-fnxzfa{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}.git-commit-msg-clear-button.svelte-fnxzfa.svelte-fnxzfa.svelte-fnxzfa{position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out}.git-commit-msg-clear-button.svelte-fnxzfa.svelte-fnxzfa.svelte-fnxzfa:after{content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat}.tree-item-flair.svelte-fnxzfa.svelte-fnxzfa.svelte-fnxzfa{margin-left:auto;align-items:center}`); +} +function get_each_context2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[45] = list[i]; + return child_ctx; +} +function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[45] = list[i]; + return child_ctx; +} +function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[50] = list[i]; + return child_ctx; +} +function create_if_block_8(ctx) { + let div; + let div_aria_label_value; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "class", "git-commit-msg-clear-button svelte-fnxzfa"); + attr(div, "aria-label", div_aria_label_value = "Clear"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen(div, "click", ctx[33]); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) + detach(div); + mounted = false; + dispose(); + } + }; +} +function create_if_block4(ctx) { + let div18; + let div17; + let div7; + let div6; + let div0; + let t0; + let div1; + let t2; + let div5; + let div3; + let div2; + let t3; + let div4; + let t4_value = ctx[6].staged.length + ""; + let t4; + let t5; + let t6; + let div16; + let div15; + let div8; + let t7; + let div9; + let t9; + let div14; + let div12; + let div10; + let t10; + let div11; + let t11; + let div13; + let t12_value = ctx[6].changed.length + ""; + let t12; + let t13; + let t14; + let current; + let mounted; + let dispose; + let if_block0 = ctx[13] && create_if_block_6(ctx); + let if_block1 = ctx[12] && create_if_block_42(ctx); + let if_block2 = ctx[7].length > 0 && create_if_block_12(ctx); + return { + c() { + div18 = element("div"); + div17 = element("div"); + div7 = element("div"); + div6 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + div1.textContent = "Staged Changes"; + t2 = space(); + div5 = element("div"); + div3 = element("div"); + div2 = element("div"); + div2.innerHTML = ``; + t3 = space(); + div4 = element("div"); + t4 = text(t4_value); + t5 = space(); + if (if_block0) + if_block0.c(); + t6 = space(); + div16 = element("div"); + div15 = element("div"); + div8 = element("div"); + div8.innerHTML = ``; + t7 = space(); + div9 = element("div"); + div9.textContent = "Changes"; + t9 = space(); + div14 = element("div"); + div12 = element("div"); + div10 = element("div"); + div10.innerHTML = ``; + t10 = space(); + div11 = element("div"); + div11.innerHTML = ``; + t11 = space(); + div13 = element("div"); + t12 = text(t12_value); + t13 = space(); + if (if_block1) + if_block1.c(); + t14 = space(); + if (if_block2) + if_block2.c(); + attr(div0, "class", "nav-folder-collapse-indicator collapse-icon"); + attr(div1, "class", "nav-folder-title-content"); + attr(div2, "data-icon", "minus"); + attr(div2, "aria-label", "Unstage"); + attr(div2, "class", "clickable-icon svelte-fnxzfa"); + attr(div3, "class", "buttons svelte-fnxzfa"); + attr(div4, "class", "files-count svelte-fnxzfa"); + attr(div5, "class", "tools svelte-fnxzfa"); + attr(div6, "class", "nav-folder-title"); + attr(div7, "class", "staged nav-folder"); + toggle_class(div7, "is-collapsed", !ctx[13]); + attr(div8, "class", "nav-folder-collapse-indicator collapse-icon"); + attr(div9, "class", "nav-folder-title-content"); + attr(div10, "data-icon", "undo"); + attr(div10, "aria-label", "Discard"); + attr(div10, "class", "clickable-icon svelte-fnxzfa"); + attr(div11, "data-icon", "plus"); + attr(div11, "aria-label", "Stage"); + attr(div11, "class", "clickable-icon svelte-fnxzfa"); + attr(div12, "class", "buttons svelte-fnxzfa"); + attr(div13, "class", "files-count svelte-fnxzfa"); + attr(div14, "class", "tools svelte-fnxzfa"); + attr(div15, "class", "nav-folder-title"); + attr(div16, "class", "changes nav-folder"); + toggle_class(div16, "is-collapsed", !ctx[12]); + attr(div17, "class", "nav-folder-children"); + attr(div18, "class", "nav-folder mod-root"); + }, + m(target, anchor) { + insert(target, div18, anchor); + append2(div18, div17); + append2(div17, div7); + append2(div7, div6); + append2(div6, div0); + append2(div6, t0); + append2(div6, div1); + append2(div6, t2); + append2(div6, div5); + append2(div5, div3); + append2(div3, div2); + ctx[36](div2); + append2(div5, t3); + append2(div5, div4); + append2(div4, t4); + append2(div7, t5); + if (if_block0) + if_block0.m(div7, null); + append2(div17, t6); + append2(div17, div16); + append2(div16, div15); + append2(div15, div8); + append2(div15, t7); + append2(div15, div9); + append2(div15, t9); + append2(div15, div14); + append2(div14, div12); + append2(div12, div10); + append2(div12, t10); + append2(div12, div11); + ctx[41](div11); + append2(div14, t11); + append2(div14, div13); + append2(div13, t12); + append2(div16, t13); + if (if_block1) + if_block1.m(div16, null); + append2(div17, t14); + if (if_block2) + if_block2.m(div17, null); + current = true; + if (!mounted) { + dispose = [ + listen(div0, "click", ctx[34]), + listen(div1, "click", ctx[35]), + listen(div2, "click", ctx[19]), + listen(div6, "click", self2(ctx[37])), + listen(div8, "click", ctx[38]), + listen(div9, "click", ctx[39]), + listen(div10, "click", ctx[40]), + listen(div11, "click", ctx[18]), + listen(div15, "click", self2(ctx[42])) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if ((!current || dirty[0] & 64) && t4_value !== (t4_value = ctx2[6].staged.length + "")) + set_data(t4, t4_value); + if (ctx2[13]) { + if (if_block0) { + if_block0.p(ctx2, dirty); + if (dirty[0] & 8192) { + transition_in(if_block0, 1); + } + } else { + if_block0 = create_if_block_6(ctx2); + if_block0.c(); + transition_in(if_block0, 1); + if_block0.m(div7, null); + } + } else if (if_block0) { + group_outros(); + transition_out(if_block0, 1, 1, () => { + if_block0 = null; + }); + check_outros(); + } + if (!current || dirty[0] & 8192) { + toggle_class(div7, "is-collapsed", !ctx2[13]); + } + if ((!current || dirty[0] & 64) && t12_value !== (t12_value = ctx2[6].changed.length + "")) + set_data(t12, t12_value); + if (ctx2[12]) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & 4096) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_42(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div16, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty[0] & 4096) { + toggle_class(div16, "is-collapsed", !ctx2[12]); + } + if (ctx2[7].length > 0) { + if (if_block2) { + if_block2.p(ctx2, dirty); + if (dirty[0] & 128) { + transition_in(if_block2, 1); + } + } else { + if_block2 = create_if_block_12(ctx2); + if_block2.c(); + transition_in(if_block2, 1); + if_block2.m(div17, null); + } + } else if (if_block2) { + group_outros(); + transition_out(if_block2, 1, 1, () => { + if_block2 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block0); + transition_in(if_block1); + transition_in(if_block2); + current = true; + }, + o(local) { + transition_out(if_block0); + transition_out(if_block1); + transition_out(if_block2); + current = false; + }, + d(detaching) { + if (detaching) + detach(div18); + ctx[36](null); + if (if_block0) + if_block0.d(); + ctx[41](null); + if (if_block1) + if_block1.d(); + if (if_block2) + if_block2.d(); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_6(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_7, create_else_block_2]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if (ctx2[3]) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block_2(ctx) { + let each_1_anchor; + let current; + let each_value_2 = ctx[6].staged; + let each_blocks = []; + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & 67) { + each_value_2 = ctx2[6].staged; + let i; + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx2, each_value_2, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_2.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value_2.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) + detach(each_1_anchor); + } + }; +} +function create_if_block_7(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ctx[10], + plugin: ctx[0], + view: ctx[1], + fileType: FileType.staged, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & 1024) + treecomponent_changes.hierarchy = ctx2[10]; + if (dirty[0] & 1) + treecomponent_changes.plugin = ctx2[0]; + if (dirty[0] & 2) + treecomponent_changes.view = ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_2(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ctx[50], + view: ctx[1], + manager: ctx[0].gitManager + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty[0] & 64) + stagedfilecomponent_changes.change = ctx2[50]; + if (dirty[0] & 2) + stagedfilecomponent_changes.view = ctx2[1]; + if (dirty[0] & 1) + stagedfilecomponent_changes.manager = ctx2[0].gitManager; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_if_block_42(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_52, create_else_block_12]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if (ctx2[3]) + return 0; + return 1; + } + current_block_type_index = select_block_type_1(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block_12(ctx) { + let each_1_anchor; + let current; + let each_value_1 = ctx[6].changed; + let each_blocks = []; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & 67) { + each_value_1 = ctx2[6].changed; + let i; + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx2, each_value_1, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_1.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value_1.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) + detach(each_1_anchor); + } + }; +} +function create_if_block_52(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ctx[9], + plugin: ctx[0], + view: ctx[1], + fileType: FileType.changed, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & 512) + treecomponent_changes.hierarchy = ctx2[9]; + if (dirty[0] & 1) + treecomponent_changes.plugin = ctx2[0]; + if (dirty[0] & 2) + treecomponent_changes.view = ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_1(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ctx[45], + view: ctx[1], + manager: ctx[0].gitManager + } + }); + filecomponent.$on("git-refresh", triggerRefresh); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty[0] & 64) + filecomponent_changes.change = ctx2[45]; + if (dirty[0] & 2) + filecomponent_changes.view = ctx2[1]; + if (dirty[0] & 1) + filecomponent_changes.manager = ctx2[0].gitManager; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_12(ctx) { + let div3; + let div2; + let div0; + let t0; + let div1; + let t2; + let span; + let t3_value = ctx[7].length + ""; + let t3; + let t4; + let current; + let mounted; + let dispose; + let if_block = ctx[14] && create_if_block_22(ctx); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + div1.textContent = "Recently Pulled Files"; + t2 = space(); + span = element("span"); + t3 = text(t3_value); + t4 = space(); + if (if_block) + if_block.c(); + attr(div0, "class", "nav-folder-collapse-indicator collapse-icon"); + attr(div1, "class", "nav-folder-title-content"); + attr(span, "class", "tree-item-flair svelte-fnxzfa"); + attr(div2, "class", "nav-folder-title"); + attr(div3, "class", "pulled nav-folder"); + toggle_class(div3, "is-collapsed", !ctx[14]); + }, + m(target, anchor) { + insert(target, div3, anchor); + append2(div3, div2); + append2(div2, div0); + append2(div2, t0); + append2(div2, div1); + append2(div2, t2); + append2(div2, span); + append2(span, t3); + append2(div3, t4); + if (if_block) + if_block.m(div3, null); + current = true; + if (!mounted) { + dispose = listen(div2, "click", ctx[43]); + mounted = true; + } + }, + p(ctx2, dirty) { + if ((!current || dirty[0] & 128) && t3_value !== (t3_value = ctx2[7].length + "")) + set_data(t3, t3_value); + if (ctx2[14]) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty[0] & 16384) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_22(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div3, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + if (!current || dirty[0] & 16384) { + toggle_class(div3, "is-collapsed", !ctx2[14]); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div3); + if (if_block) + if_block.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block_22(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_32, create_else_block2]; + const if_blocks = []; + function select_block_type_2(ctx2, dirty) { + if (ctx2[3]) + return 0; + return 1; + } + current_block_type_index = select_block_type_2(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_2(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block2(ctx) { + let each_1_anchor; + let current; + let each_value = ctx[7]; + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & 130) { + each_value = ctx2[7]; + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context2(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) + detach(each_1_anchor); + } + }; +} +function create_if_block_32(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ctx[11], + plugin: ctx[0], + view: ctx[1], + fileType: FileType.pulled, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & 2048) + treecomponent_changes.hierarchy = ctx2[11]; + if (dirty[0] & 1) + treecomponent_changes.plugin = ctx2[0]; + if (dirty[0] & 2) + treecomponent_changes.view = ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block2(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ctx[45], + view: ctx[1] + } + }); + pulledfilecomponent.$on("git-refresh", triggerRefresh); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty[0] & 128) + pulledfilecomponent_changes.change = ctx2[45]; + if (dirty[0] & 2) + pulledfilecomponent_changes.view = ctx2[1]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_fragment5(ctx) { + let main; + let div9; + let div8; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2; + let div3; + let t3; + let div4; + let t4; + let div5; + let t5; + let div6; + let t6; + let div7; + let t7; + let div10; + let textarea; + let t8; + let t9; + let div11; + let current; + let mounted; + let dispose; + let if_block0 = ctx[2] && create_if_block_8(ctx); + let if_block1 = ctx[6] && ctx[10] && ctx[9] && create_if_block4(ctx); + return { + c() { + main = element("main"); + div9 = element("div"); + div8 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + t1 = space(); + div2 = element("div"); + t2 = space(); + div3 = element("div"); + t3 = space(); + div4 = element("div"); + t4 = space(); + div5 = element("div"); + t5 = space(); + div6 = element("div"); + t6 = space(); + div7 = element("div"); + t7 = space(); + div10 = element("div"); + textarea = element("textarea"); + t8 = space(); + if (if_block0) + if_block0.c(); + t9 = space(); + div11 = element("div"); + if (if_block1) + if_block1.c(); + attr(div0, "id", "backup-btn"); + attr(div0, "data-icon", "arrow-up-circle"); + attr(div0, "class", "clickable-icon nav-action-button"); + attr(div0, "aria-label", "Backup"); + attr(div1, "id", "commit-btn"); + attr(div1, "data-icon", "check"); + attr(div1, "class", "clickable-icon nav-action-button"); + attr(div1, "aria-label", "Commit"); + attr(div2, "id", "stage-all"); + attr(div2, "class", "clickable-icon nav-action-button"); + attr(div2, "data-icon", "plus-circle"); + attr(div2, "aria-label", "Stage all"); + attr(div3, "id", "unstage-all"); + attr(div3, "class", "clickable-icon nav-action-button"); + attr(div3, "data-icon", "minus-circle"); + attr(div3, "aria-label", "Unstage all"); + attr(div4, "id", "push"); + attr(div4, "class", "clickable-icon nav-action-button"); + attr(div4, "data-icon", "upload"); + attr(div4, "aria-label", "Push"); + attr(div5, "id", "pull"); + attr(div5, "class", "clickable-icon nav-action-button"); + attr(div5, "data-icon", "download"); + attr(div5, "aria-label", "Pull"); + attr(div6, "id", "layoutChange"); + attr(div6, "class", "clickable-icon nav-action-button"); + attr(div6, "aria-label", "Change Layout"); + attr(div7, "id", "refresh"); + attr(div7, "class", "clickable-icon nav-action-button"); + attr(div7, "data-icon", "refresh-cw"); + attr(div7, "aria-label", "Refresh"); + set_style(div7, "margin", "1px"); + toggle_class(div7, "loading", ctx[5]); + attr(div8, "class", "nav-buttons-container"); + attr(div9, "class", "nav-header"); + attr(textarea, "rows", ctx[15]); + attr(textarea, "class", "commit-msg-input svelte-fnxzfa"); + attr(textarea, "type", "text"); + attr(textarea, "spellcheck", "true"); + attr(textarea, "placeholder", "Commit Message"); + attr(div10, "class", "git-commit-msg svelte-fnxzfa"); + attr(div11, "class", "nav-files-container"); + set_style(div11, "position", "relative"); + attr(main, "class", "svelte-fnxzfa"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div9); + append2(div9, div8); + append2(div8, div0); + ctx[23](div0); + append2(div8, t0); + append2(div8, div1); + ctx[24](div1); + append2(div8, t1); + append2(div8, div2); + ctx[25](div2); + append2(div8, t2); + append2(div8, div3); + ctx[26](div3); + append2(div8, t3); + append2(div8, div4); + ctx[27](div4); + append2(div8, t4); + append2(div8, div5); + ctx[28](div5); + append2(div8, t5); + append2(div8, div6); + ctx[29](div6); + append2(div8, t6); + append2(div8, div7); + ctx[31](div7); + append2(main, t7); + append2(main, div10); + append2(div10, textarea); + set_input_value(textarea, ctx[2]); + append2(div10, t8); + if (if_block0) + if_block0.m(div10, null); + append2(main, t9); + append2(main, div11); + if (if_block1) + if_block1.m(div11, null); + current = true; + if (!mounted) { + dispose = [ + listen(div0, "click", ctx[17]), + listen(div1, "click", ctx[16]), + listen(div2, "click", ctx[18]), + listen(div3, "click", ctx[19]), + listen(div4, "click", ctx[20]), + listen(div5, "click", ctx[21]), + listen(div6, "click", ctx[30]), + listen(div7, "click", triggerRefresh), + listen(textarea, "input", ctx[32]) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (!current || dirty[0] & 32) { + toggle_class(div7, "loading", ctx2[5]); + } + if (!current || dirty[0] & 32768) { + attr(textarea, "rows", ctx2[15]); + } + if (dirty[0] & 4) { + set_input_value(textarea, ctx2[2]); + } + if (ctx2[2]) { + if (if_block0) { + if_block0.p(ctx2, dirty); + } else { + if_block0 = create_if_block_8(ctx2); + if_block0.c(); + if_block0.m(div10, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + if (ctx2[6] && ctx2[10] && ctx2[9]) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & 1600) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block4(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div11, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) + detach(main); + ctx[23](null); + ctx[24](null); + ctx[25](null); + ctx[26](null); + ctx[27](null); + ctx[28](null); + ctx[29](null); + ctx[31](null); + if (if_block0) + if_block0.d(); + if (if_block1) + if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function triggerRefresh() { + dispatchEvent(new CustomEvent("git-refresh")); +} +function instance5($$self, $$props, $$invalidate) { + let rows; + let { plugin } = $$props; + let { view } = $$props; + let loading; + let status2; + let lastPulledFiles = []; + let commitMessage = plugin.settings.commitMessage; + let buttons = []; + let changeHierarchy; + let stagedHierarchy; + let lastPulledFilesHierarchy; + let changesOpen = true; + let stagedOpen = true; + let lastPulledFilesOpen = true; + let showTree = plugin.settings.treeStructure; + let layoutBtn; + addEventListener("git-view-refresh", refresh); + plugin.app.workspace.onLayoutReady(() => { + window.setTimeout(() => { + buttons.forEach((btn) => (0, import_obsidian21.setIcon)(btn, btn.getAttr("data-icon"), 16)); + (0, import_obsidian21.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + }, 0); + }); + onDestroy(() => { + removeEventListener("git-view-refresh", refresh); + }); + async function commit2() { + $$invalidate(5, loading = true); + if (status2) { + if (await plugin.hasTooBigFiles(status2.staged)) { + plugin.setState(PluginState.idle); + return false; + } + plugin.gitManager.commit(commitMessage).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(2, commitMessage = ""); + } + plugin.setUpAutoBackup(); + }).finally(triggerRefresh); + } + } + async function backup() { + $$invalidate(5, loading = true); + if (status2) { + plugin.createBackup(false, false, commitMessage).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(2, commitMessage = ""); + } + }).finally(triggerRefresh); + } + } + async function refresh() { + if (!plugin.gitReady) { + $$invalidate(6, status2 = void 0); + return; + } + $$invalidate(6, status2 = plugin.cachedStatus); + if (plugin.lastPulledFiles && plugin.lastPulledFiles != lastPulledFiles) { + $$invalidate(7, lastPulledFiles = plugin.lastPulledFiles); + $$invalidate(11, lastPulledFilesHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(lastPulledFiles) + }); + } + if (status2) { + const sort = (a, b) => { + return a.vault_path.split("/").last().localeCompare(b.vault_path.split("/").last()); + }; + status2.changed.sort(sort); + status2.staged.sort(sort); + if (status2.changed.length + status2.staged.length > 500) { + $$invalidate(6, status2 = void 0); + if (!plugin.loading) { + plugin.displayError("Too many changes to display"); + } + } else { + $$invalidate(9, changeHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(status2.changed) + }); + $$invalidate(10, stagedHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(status2.staged) + }); + } + } else { + $$invalidate(9, changeHierarchy = void 0); + $$invalidate(10, stagedHierarchy = void 0); + } + $$invalidate(5, loading = plugin.loading); + } + function stageAll() { + $$invalidate(5, loading = true); + plugin.gitManager.stageAll({ status: status2 }).finally(triggerRefresh); + } + function unstageAll() { + $$invalidate(5, loading = true); + plugin.gitManager.unstageAll({ status: status2 }).finally(triggerRefresh); + } + function push2() { + $$invalidate(5, loading = true); + plugin.push().finally(triggerRefresh); + } + function pull2() { + $$invalidate(5, loading = true); + plugin.pullChangesFromRemote().finally(triggerRefresh); + } + function discard() { + new DiscardModal(view.app, false, plugin.gitManager.getVaultPath("/")).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + plugin.gitManager.discardAll({ status: plugin.cachedStatus }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[5] = $$value; + $$invalidate(8, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(8, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(8, buttons); + }); + } + function div3_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(8, buttons); + }); + } + function div4_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[3] = $$value; + $$invalidate(8, buttons); + }); + } + function div5_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[4] = $$value; + $$invalidate(8, buttons); + }); + } + function div6_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + layoutBtn = $$value; + $$invalidate(4, layoutBtn); + }); + } + const click_handler = () => { + $$invalidate(3, showTree = !showTree); + $$invalidate(0, plugin.settings.treeStructure = showTree, plugin); + plugin.saveSettings(); + }; + function div7_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[6] = $$value; + $$invalidate(8, buttons); + }); + } + function textarea_input_handler() { + commitMessage = this.value; + $$invalidate(2, commitMessage); + } + const click_handler_1 = () => $$invalidate(2, commitMessage = ""); + const click_handler_2 = () => $$invalidate(13, stagedOpen = !stagedOpen); + const click_handler_3 = () => $$invalidate(13, stagedOpen = !stagedOpen); + function div2_binding_1($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[8] = $$value; + $$invalidate(8, buttons); + }); + } + const click_handler_4 = () => $$invalidate(13, stagedOpen = !stagedOpen); + const click_handler_5 = () => $$invalidate(12, changesOpen = !changesOpen); + const click_handler_6 = () => $$invalidate(12, changesOpen = !changesOpen); + const click_handler_7 = () => discard(); + function div11_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[9] = $$value; + $$invalidate(8, buttons); + }); + } + const click_handler_8 = () => $$invalidate(12, changesOpen = !changesOpen); + const click_handler_9 = () => $$invalidate(14, lastPulledFilesOpen = !lastPulledFilesOpen); + $$self.$$set = ($$props2) => { + if ("plugin" in $$props2) + $$invalidate(0, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty[0] & 24) { + $: { + if (layoutBtn) { + layoutBtn.empty(); + (0, import_obsidian21.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + } + } + } + if ($$self.$$.dirty[0] & 4) { + $: + $$invalidate(15, rows = (commitMessage.match(/\n/g) || []).length + 1 || 1); + } + }; + return [ + plugin, + view, + commitMessage, + showTree, + layoutBtn, + loading, + status2, + lastPulledFiles, + buttons, + changeHierarchy, + stagedHierarchy, + lastPulledFilesHierarchy, + changesOpen, + stagedOpen, + lastPulledFilesOpen, + rows, + commit2, + backup, + stageAll, + unstageAll, + push2, + pull2, + discard, + div0_binding, + div1_binding, + div2_binding, + div3_binding, + div4_binding, + div5_binding, + div6_binding, + click_handler, + div7_binding, + textarea_input_handler, + click_handler_1, + click_handler_2, + click_handler_3, + div2_binding_1, + click_handler_4, + click_handler_5, + click_handler_6, + click_handler_7, + div11_binding, + click_handler_8, + click_handler_9 + ]; +} +var GitView = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance5, create_fragment5, safe_not_equal, { plugin: 0, view: 1 }, add_css5, [-1, -1]); + } +}; +var gitView_default = GitView; + +// src/ui/sidebar/sidebarView.ts +var GitView2 = class extends import_obsidian22.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.hoverPopover = null; + } + getViewType() { + return GIT_VIEW_CONFIG.type; + } + getDisplayText() { + return GIT_VIEW_CONFIG.name; + } + getIcon() { + return GIT_VIEW_CONFIG.icon; + } + onClose() { + return super.onClose(); + } + onOpen() { + this._view = new gitView_default({ + target: this.contentEl, + props: { + plugin: this.plugin, + view: this + } + }); + return super.onOpen(); + } +}; + +// src/ui/statusBar/branchStatusBar.ts +init_polyfill_buffer(); +var BranchStatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.statusBarEl.addClass("mod-clickable"); + this.statusBarEl.onClickEvent((e) => { + this.plugin.switchBranch(); + }); + } + async display() { + if (this.plugin.gitReady) { + const branchInfo = await this.plugin.gitManager.branchInfo(); + if (branchInfo.current != void 0) { + this.statusBarEl.setText(branchInfo.current); + } else { + this.statusBarEl.empty(); + } + } else { + this.statusBarEl.empty(); + } + } +}; + +// src/main.ts +var ObsidianGit = class extends import_obsidian23.Plugin { + constructor() { + super(...arguments); + this.gitReady = false; + this.promiseQueue = new PromiseQueue(); + this.conflictOutputFile = "conflict-files-obsidian-git.md"; + this.offlineMode = false; + this.loading = false; + } + setState(state) { + var _a2; + this.state = state; + (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + } + async updateCachedStatus() { + this.cachedStatus = await this.gitManager.status(); + return this.cachedStatus; + } + async refresh() { + const gitView = this.app.workspace.getLeavesOfType(GIT_VIEW_CONFIG.type); + if (this.settings.changedFilesInStatusBar || gitView.length > 0) { + this.loading = true; + dispatchEvent(new CustomEvent("git-view-refresh")); + await this.updateCachedStatus(); + this.loading = false; + dispatchEvent(new CustomEvent("git-view-refresh")); + } + } + async onload() { + console.log("loading " + this.manifest.name + " plugin"); + this.localStorage = new LocalStorageSettings(this); + this.localStorage.migrate(); + await this.loadSettings(); + this.migrateSettings(); + this.addSettingTab(new ObsidianGitSettingsTab(this.app, this)); + if (!this.localStorage.getPluginDisabled()) { + this.loadPlugin(); + } + } + async loadPlugin() { + addEventListener("git-refresh", this.refresh.bind(this)); + this.registerView(GIT_VIEW_CONFIG.type, (leaf) => { + return new GitView2(leaf, this); + }); + this.registerView(DIFF_VIEW_CONFIG.type, (leaf) => { + return new DiffView(leaf, this); + }); + this.app.workspace.registerHoverLinkSource(GIT_VIEW_CONFIG.type, { + display: "Git View", + defaultMod: true + }); + this.setRefreshDebouncer(); + this.addCommand({ + id: "edit-gitignore", + name: "Edit .gitignore", + callback: async () => { + const path2 = this.gitManager.getVaultPath(".gitignore"); + if (!await this.app.vault.adapter.exists(path2)) { + this.app.vault.adapter.write(path2, ""); + } + const content = await this.app.vault.adapter.read(path2); + const modal = new IgnoreModal(this.app, content); + const res = await modal.open(); + if (res !== void 0) { + await this.app.vault.adapter.write(path2, res); + this.refresh(); + } + } + }); + this.addCommand({ + id: "open-git-view", + name: "Open source control view", + callback: async () => { + const leafs = this.app.workspace.getLeavesOfType(GIT_VIEW_CONFIG.type); + let leaf; + if (leafs.length === 0) { + leaf = this.app.workspace.getRightLeaf(false); + await leaf.setViewState({ + type: GIT_VIEW_CONFIG.type + }); + } else { + leaf = leafs.first(); + } + this.app.workspace.revealLeaf(leaf); + dispatchEvent(new CustomEvent("git-refresh")); + } + }); + this.addCommand({ + id: "open-diff-view", + name: "Open diff view", + checkCallback: (checking) => { + var _a2; + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + (_a2 = getNewLeaf()) == null ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { + staged: false, + file: this.gitManager.getPath(file.path, true) + } + }); + } + } + }); + this.addCommand({ + id: "view-file-on-github", + name: "Open file on GitHub", + editorCallback: (editor, { file }) => openLineInGitHub(editor, file, this.gitManager) + }); + this.addCommand({ + id: "view-history-on-github", + name: "Open file history on GitHub", + editorCallback: (_, { file }) => openHistoryInGitHub(file, this.gitManager) + }); + this.addCommand({ + id: "pull", + name: "Pull", + callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) + }); + this.addCommand({ + id: "add-to-gitignore", + name: "Add file to gitignore", + checkCallback: (checking) => { + const file = app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + app.vault.adapter.append(this.gitManager.getVaultPath(".gitignore"), "\n" + this.gitManager.getPath(file.path, true)).then(() => { + this.refresh(); + }); + } + } + }); + this.addCommand({ + id: "push", + name: "Create backup", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false)) + }); + this.addCommand({ + id: "backup-and-close", + name: "Create backup and close", + callback: () => this.promiseQueue.addTask(async () => { + await this.createBackup(false); + window.close(); + }) + }); + this.addCommand({ + id: "commit-push-specified-message", + name: "Create backup with specific message", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false, true)) + }); + this.addCommand({ + id: "commit", + name: "Commit all changes", + callback: () => this.promiseQueue.addTask(() => this.commit({ fromAutoBackup: false })) + }); + this.addCommand({ + id: "commit-specified-message", + name: "Commit all changes with specific message", + callback: () => this.promiseQueue.addTask(() => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true + })) + }); + this.addCommand({ + id: "commit-staged", + name: "Commit staged", + callback: () => this.promiseQueue.addTask(() => this.commit({ + fromAutoBackup: false, + requestCustomMessage: false, + onlyStaged: true + })) + }); + this.addCommand({ + id: "commit-staged-specified-message", + name: "Commit staged with specific message", + callback: () => this.promiseQueue.addTask(() => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true, + onlyStaged: true + })) + }); + this.addCommand({ + id: "push2", + name: "Push", + callback: () => this.promiseQueue.addTask(() => this.push()) + }); + this.addCommand({ + id: "stage-current-file", + name: "Stage current file", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.promiseQueue.addTask(() => this.stageFile(file)); + } + } + }); + this.addCommand({ + id: "unstage-current-file", + name: "Unstage current file", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.promiseQueue.addTask(() => this.unstageFile(file)); + } + } + }); + this.addCommand({ + id: "edit-remotes", + name: "Edit remotes", + callback: async () => this.editRemotes() + }); + this.addCommand({ + id: "remove-remote", + name: "Remove remote", + callback: async () => this.removeRemote() + }); + this.addCommand({ + id: "delete-repo", + name: "CAUTION: Delete repository", + callback: async () => { + const repoExists = await this.app.vault.adapter.exists(`${this.settings.basePath}/.git`); + if (repoExists) { + const modal = new GeneralModal({ options: ["NO", "YES"], placeholder: "Do you really want to delete the repository (.git directory)? This action cannot be undone.", onlySelection: true }); + const shouldDelete = await modal.open() === "YES"; + if (shouldDelete) { + await this.app.vault.adapter.rmdir(`${this.settings.basePath}/.git`, true); + new import_obsidian23.Notice("Successfully deleted repository. Reloading plugin..."); + this.unloadPlugin(); + this.init(); + } + } else { + new import_obsidian23.Notice("No repository found"); + } + } + }); + this.addCommand({ + id: "init-repo", + name: "Initialize a new repo", + callback: async () => this.createNewRepo() + }); + this.addCommand({ + id: "clone-repo", + name: "Clone an existing remote repo", + callback: async () => this.cloneNewRepo() + }); + this.addCommand({ + id: "list-changed-files", + name: "List changed files", + callback: async () => { + if (!await this.isAllInitialized()) + return; + const status2 = await this.gitManager.status(); + this.setState(PluginState.idle); + if (status2.changed.length + status2.staged.length > 500) { + this.displayError("Too many changes to display"); + return; + } + new ChangedFilesModal(this, status2.changed).open(); + } + }); + this.addCommand({ + id: "switch-branch", + name: "Switch branch", + callback: () => { + this.switchBranch(); + } + }); + this.addCommand({ + id: "create-branch", + name: "Create new branch", + callback: () => { + this.createBranch(); + } + }); + this.addCommand({ + id: "delete-branch", + name: "Delete branch", + callback: () => { + this.deleteBranch(); + } + }); + this.registerEvent(this.app.workspace.on("file-menu", (menu, file, source) => { + this.handleFileMenu(menu, file, source); + })); + if (this.settings.showStatusBar) { + const statusBarEl = this.addStatusBarItem(); + this.statusBar = new StatusBar(statusBarEl, this); + this.registerInterval(window.setInterval(() => { + var _a2; + return (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + }, 1e3)); + } + if (import_obsidian23.Platform.isDesktop && this.settings.showBranchStatusBar) { + const branchStatusBarEl = this.addStatusBarItem(); + this.branchBar = new BranchStatusBar(branchStatusBarEl, this); + this.registerInterval(window.setInterval(() => { + var _a2; + return (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + }, 6e4)); + } + this.app.workspace.onLayoutReady(() => this.init()); + } + setRefreshDebouncer() { + var _a2; + (_a2 = this.debRefresh) == null ? void 0 : _a2.cancel(); + this.debRefresh = (0, import_obsidian23.debounce)(() => { + if (this.settings.refreshSourceControl) { + this.refresh(); + } + }, this.settings.refreshSourceControlTimer, true); + } + async showNotices() { + const length = 1e4; + if (this.manifest.id === "obsidian-git" && import_obsidian23.Platform.isDesktopApp && !this.settings.showedMobileNotice) { + new import_obsidian23.Notice("Obsidian Git is now available on mobile! Please read the plugin's README for more information.", length); + this.settings.showedMobileNotice = true; + await this.saveSettings(); + } + if (this.manifest.id === "obsidian-git-isomorphic") { + new import_obsidian23.Notice("Obsidian Git Mobile is now deprecated. Please uninstall it and install Obsidian Git instead.", length); + } + } + handleFileMenu(menu, file, source) { + if (source !== "file-explorer-context-menu") { + return; + } + if (!file) { + return; + } + if (!this.gitReady) + return; + menu.addItem((item) => { + item.setTitle(`Git: Stage`).setIcon("plus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(async () => { + if (file instanceof import_obsidian23.TFile) { + await this.gitManager.stage(file.path, true); + } else { + await this.gitManager.stageAll({ dir: this.gitManager.getPath(file.path, true) }); + } + this.displayMessage(`Staged ${file.path}`); + }); + }); + }); + menu.addItem((item) => { + item.setTitle(`Git: Unstage`).setIcon("minus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(async () => { + if (file instanceof import_obsidian23.TFile) { + await this.gitManager.unstage(file.path, true); + } else { + await this.gitManager.unstageAll({ dir: this.gitManager.getPath(file.path, true) }); + } + this.displayMessage(`Unstaged ${file.path}`); + }); + }); + }); + } + async migrateSettings() { + if (this.settings.mergeOnPull != void 0) { + this.settings.syncMethod = this.settings.mergeOnPull ? "merge" : "rebase"; + this.settings.mergeOnPull = void 0; + await this.saveSettings(); + } + if (this.settings.autoCommitMessage === void 0) { + this.settings.autoCommitMessage = this.settings.commitMessage; + await this.saveSettings(); + } + if (this.settings.gitPath != void 0) { + this.localStorage.setGitPath(this.settings.gitPath); + this.settings.gitPath = void 0; + await this.saveSettings(); + } + if (this.settings.username != void 0) { + this.localStorage.setPassword(this.settings.username); + this.settings.username = void 0; + await this.saveSettings(); + } + } + unloadPlugin() { + this.gitReady = false; + dispatchEvent(new CustomEvent("git-refresh")); + this.clearAutoPull(); + this.clearAutoPush(); + this.clearAutoBackup(); + removeEventListener("git-refresh", this.refresh.bind(this)); + this.app.metadataCache.offref(this.modifyEvent); + this.app.metadataCache.offref(this.deleteEvent); + this.app.metadataCache.offref(this.createEvent); + this.app.metadataCache.offref(this.renameEvent); + this.debRefresh.cancel(); + } + async onunload() { + this.app.workspace.unregisterHoverLinkSource(GIT_VIEW_CONFIG.type); + this.unloadPlugin(); + console.log("unloading " + this.manifest.name + " plugin"); + } + async loadSettings() { + let data = await this.loadData(); + if (data == void 0) { + data = { showedMobileNotice: true }; + } + this.settings = Object.assign({}, DEFAULT_SETTINGS, data); + } + async saveSettings() { + await this.saveData(this.settings); + } + async saveLastAuto(date, mode) { + if (mode === "backup") { + this.localStorage.setLastAutoBackup(date.toString()); + } else if (mode === "pull") { + this.localStorage.setLastAutoPull(date.toString()); + } else if (mode === "push") { + this.localStorage.setLastAutoPush(date.toString()); + } + } + async loadLastAuto() { + var _a2, _b, _c; + return { + "backup": new Date((_a2 = this.localStorage.getLastAutoBackup()) != null ? _a2 : ""), + "pull": new Date((_b = this.localStorage.getLastAutoPull()) != null ? _b : ""), + "push": new Date((_c = this.localStorage.getLastAutoPush()) != null ? _c : "") + }; + } + async init() { + var _a2; + this.showNotices(); + try { + if (import_obsidian23.Platform.isDesktopApp) { + this.gitManager = new SimpleGit(this); + await this.gitManager.setGitInstance(); + } else { + this.gitManager = new IsomorphicGit(this); + } + const result = await this.gitManager.checkRequirements(); + switch (result) { + case "missing-git": + this.displayError("Cannot run git command"); + break; + case "missing-repo": + new import_obsidian23.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo."); + break; + case "valid": + this.gitReady = true; + this.setState(PluginState.idle); + this.modifyEvent = this.app.vault.on("modify", () => { + this.debRefresh(); + }); + this.deleteEvent = this.app.vault.on("delete", () => { + this.debRefresh(); + }); + this.createEvent = this.app.vault.on("create", () => { + this.debRefresh(); + }); + this.renameEvent = this.app.vault.on("rename", () => { + this.debRefresh(); + }); + this.registerEvent(this.modifyEvent); + this.registerEvent(this.deleteEvent); + this.registerEvent(this.createEvent); + this.registerEvent(this.renameEvent); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + dispatchEvent(new CustomEvent("git-refresh")); + if (this.settings.autoPullOnBoot) { + this.promiseQueue.addTask(() => this.pullChangesFromRemote()); + } + this.setUpAutos(); + break; + default: + console.log("Something weird happened. The 'checkRequirements' result is " + result); + } + } catch (error) { + this.displayError(error); + console.error(error); + } + } + async createNewRepo() { + await this.gitManager.init(); + new import_obsidian23.Notice("Initialized new repo"); + await this.init(); + } + async cloneNewRepo() { + const modal = new GeneralModal({ placeholder: "Enter remote URL" }); + const url = await modal.open(); + if (url) { + const confirmOption = "Vault Root"; + let dir = await new GeneralModal({ + options: [confirmOption], + placeholder: "Enter directory for clone. It needs to be empty or not existent.", + allowEmpty: this.gitManager instanceof IsomorphicGit + }).open(); + if (dir !== void 0) { + if (dir === confirmOption) { + dir = "."; + } + dir = (0, import_obsidian23.normalizePath)(dir); + if (dir === "/") { + dir = "."; + } + if (dir === ".") { + const modal2 = new GeneralModal({ options: ["NO", "YES"], placeholder: `Does your remote repo contain a ${app.vault.configDir} directory at the root?`, onlySelection: true }); + const containsConflictDir = await modal2.open(); + if (containsConflictDir === void 0) { + new import_obsidian23.Notice("Aborted clone"); + return; + } else if (containsConflictDir === "YES") { + const confirmOption2 = "DELETE ALL YOUR LOCAL CONFIG AND PLUGINS"; + const modal3 = new GeneralModal({ options: ["Abort clone", confirmOption2], placeholder: `To avoid conflicts, the local ${app.vault.configDir} directory needs to be deleted.`, onlySelection: true }); + const shouldDelete = await modal3.open() === confirmOption2; + if (shouldDelete) { + await this.app.vault.adapter.rmdir(app.vault.configDir, true); + } else { + new import_obsidian23.Notice("Aborted clone"); + return; + } + } + } + new import_obsidian23.Notice(`Cloning new repo into "${dir}"`); + await this.gitManager.clone(url, dir); + new import_obsidian23.Notice("Cloned new repo."); + new import_obsidian23.Notice("Please restart Obsidian"); + if (dir && dir !== ".") { + this.settings.basePath = dir; + this.saveSettings(); + } + } + } + } + async isAllInitialized() { + if (!this.gitReady) { + await this.init(); + } + return this.gitReady; + } + async pullChangesFromRemote() { + if (!await this.isAllInitialized()) + return; + const filesUpdated = await this.pull(); + this.setUpAutoBackup(); + if (!filesUpdated) { + this.displayMessage("Everything is up-to-date"); + } + if (this.gitManager instanceof SimpleGit) { + const status2 = await this.gitManager.status(); + if (status2.conflicted.length > 0) { + this.displayError(`You have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}`); + this.handleConflict(status2.conflicted); + } + } + dispatchEvent(new CustomEvent("git-refresh")); + this.lastUpdate = Date.now(); + this.setState(PluginState.idle); + } + async createBackup(fromAutoBackup, requestCustomMessage = false, commitMessage) { + if (!await this.isAllInitialized()) + return; + if (this.settings.syncMethod == "reset" && this.settings.pullBeforePush) { + await this.pull(); + } + if (!await this.commit({ fromAutoBackup, requestCustomMessage, commitMessage })) + return; + if (!this.settings.disablePush) { + if (await this.gitManager.canPush()) { + if (this.settings.syncMethod != "reset" && this.settings.pullBeforePush) { + await this.pull(); + } + await this.push(); + } else { + this.displayMessage("No changes to push"); + } + } + this.setState(PluginState.idle); + } + async commit({ + fromAutoBackup, + requestCustomMessage = false, + onlyStaged = false, + commitMessage + }) { + if (!await this.isAllInitialized()) + return false; + const hadConflict = this.localStorage.getConflict() === "true"; + let changedFiles; + let status2; + let unstagedFiles; + if (this.gitManager instanceof SimpleGit) { + this.mayDeleteConflictFile(); + status2 = await this.updateCachedStatus(); + if (fromAutoBackup && status2.conflicted.length > 0) { + this.displayError(`Did not commit, because you have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}. Please resolve them and commit per command.`); + this.handleConflict(status2.conflicted); + return false; + } + changedFiles = [...status2.changed, ...status2.staged]; + } else if (fromAutoBackup && hadConflict) { + this.setState(PluginState.conflicted); + this.displayError(`Did not commit, because you have conflicts. Please resolve them and commit per command.`); + return false; + } else if (hadConflict) { + await this.mayDeleteConflictFile(); + status2 = await this.updateCachedStatus(); + changedFiles = [...status2.changed, ...status2.staged]; + } else { + if (onlyStaged) { + changedFiles = await this.gitManager.getStagedFiles(); + } else { + unstagedFiles = await this.gitManager.getUnstagedFiles(); + changedFiles = unstagedFiles.map(({ filepath }) => ({ vault_path: this.gitManager.getVaultPath(filepath) })); + } + } + if (await this.hasTooBigFiles(changedFiles)) { + this.setState(PluginState.idle); + return false; + } + if (changedFiles.length !== 0 || hadConflict) { + let cmtMessage = commitMessage != null ? commitMessage : commitMessage = fromAutoBackup ? this.settings.autoCommitMessage : this.settings.commitMessage; + if (fromAutoBackup && this.settings.customMessageOnAutoBackup || requestCustomMessage) { + if (!this.settings.disablePopups && fromAutoBackup) { + new import_obsidian23.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort"); + } + const tempMessage = await new CustomMessageModal(this, true).open(); + if (tempMessage != void 0 && tempMessage != "" && tempMessage != "...") { + cmtMessage = tempMessage; + } else { + this.setState(PluginState.idle); + return false; + } + } + let committedFiles; + if (onlyStaged) { + committedFiles = await this.gitManager.commit(cmtMessage); + } else { + committedFiles = await this.gitManager.commitAll({ message: cmtMessage, status: status2, unstagedFiles }); + } + let roughly = false; + if (committedFiles === void 0) { + roughly = true; + committedFiles = changedFiles.length; + } + this.setUpAutoBackup(); + this.displayMessage(`Committed${roughly ? " approx." : ""} ${committedFiles} ${committedFiles == 1 ? "file" : "files"}`); + } else { + this.displayMessage("No changes to commit"); + } + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(PluginState.idle); + return true; + } + async hasTooBigFiles(files) { + var _a2; + const branchInfo = await this.gitManager.branchInfo(); + const remote = (_a2 = branchInfo.tracking) == null ? void 0 : _a2.split("/")[0]; + if (remote) { + const remoteUrl = await this.gitManager.getRemoteUrl(remote); + if (remoteUrl == null ? void 0 : remoteUrl.includes("github.com")) { + const tooBigFiles = files.filter((f) => { + const file = this.app.vault.getAbstractFileByPath(f.vault_path); + if (file instanceof import_obsidian23.TFile) { + return file.stat.size >= 1e8; + } + return false; + }); + if (tooBigFiles.length > 0) { + this.displayError(`Did not commit, because following files are too big: ${tooBigFiles.map((e) => e.vault_path)}. Please remove them.`); + return true; + } + } + } + return false; + } + async push() { + if (!await this.isAllInitialized()) + return false; + if (!await this.remotesAreSet()) { + return false; + } + const hadConflict = this.localStorage.getConflict() === "true"; + if (this.gitManager instanceof SimpleGit) + await this.mayDeleteConflictFile(); + let status2; + if (this.gitManager instanceof SimpleGit && (status2 = await this.updateCachedStatus()).conflicted.length > 0) { + this.displayError(`Cannot push. You have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}`); + this.handleConflict(status2.conflicted); + return false; + } else if (this.gitManager instanceof IsomorphicGit && hadConflict) { + this.displayError(`Cannot push. You have conflicts`); + this.setState(PluginState.conflicted); + return false; + } + { + console.log("Pushing...."); + const pushedFiles = await this.gitManager.push(); + console.log("Pushed!", pushedFiles); + this.lastUpdate = Date.now(); + if (pushedFiles > 0) { + this.displayMessage(`Pushed ${pushedFiles} ${pushedFiles == 1 ? "file" : "files"} to remote`); + } else { + this.displayMessage(`No changes to push`); + } + this.offlineMode = false; + this.setState(PluginState.idle); + return true; + } + } + async pull() { + if (!await this.remotesAreSet()) { + return false; + } + const pulledFiles = await this.gitManager.pull() || []; + this.offlineMode = false; + if (pulledFiles.length > 0) { + this.displayMessage(`Pulled ${pulledFiles.length} ${pulledFiles.length == 1 ? "file" : "files"} from remote`); + this.lastPulledFiles = pulledFiles; + } + return pulledFiles.length != 0; + } + async mayDeleteConflictFile() { + const file = this.app.vault.getAbstractFileByPath(this.conflictOutputFile); + if (file) { + this.app.workspace.iterateAllLeaves((leaf) => { + if (leaf.view instanceof import_obsidian23.MarkdownView && leaf.view.file.path == file.path) { + leaf.detach(); + } + }); + await this.app.vault.delete(file); + } + } + async stageFile(file) { + if (!await this.isAllInitialized()) + return false; + await this.gitManager.stage(file.path, true); + this.displayMessage(`Staged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(PluginState.idle); + return true; + } + async unstageFile(file) { + if (!await this.isAllInitialized()) + return false; + await this.gitManager.unstage(file.path, true); + this.displayMessage(`Unstaged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(PluginState.idle); + return true; + } + async switchBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const branchInfo = await this.gitManager.branchInfo(); + const selectedBranch = await new BranchModal(branchInfo.branches).open(); + if (selectedBranch != void 0) { + await this.gitManager.checkout(selectedBranch); + this.displayMessage(`Switched to ${selectedBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return selectedBranch; + } + } + async createBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const newBranch = await new GeneralModal({ placeholder: "Create new branch" }).open(); + if (newBranch != void 0) { + await this.gitManager.createBranch(newBranch); + this.displayMessage(`Created new branch ${newBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return newBranch; + } + } + async deleteBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const branchInfo = await this.gitManager.branchInfo(); + if (branchInfo.current) + branchInfo.branches.remove(branchInfo.current); + const branch2 = await new GeneralModal({ options: branchInfo.branches, placeholder: "Delete branch", onlySelection: true }).open(); + if (branch2 != void 0) { + let force = false; + if (!await this.gitManager.branchIsMerged(branch2)) { + const forceAnswer = await new GeneralModal({ options: ["YES", "NO"], placeholder: "This branch isn't merged into HEAD. Force delete?", onlySelection: true }).open(); + if (forceAnswer !== "YES") { + return; + } + force = forceAnswer === "YES"; + } + await this.gitManager.deleteBranch(branch2, force); + this.displayMessage(`Deleted branch ${branch2}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return branch2; + } + } + async remotesAreSet() { + if (!(await this.gitManager.branchInfo()).tracking) { + new import_obsidian23.Notice("No upstream branch is set. Please select one."); + const remoteBranch = await this.selectRemoteBranch(); + if (remoteBranch == void 0) { + this.displayError("Aborted. No upstream-branch is set!", 1e4); + this.setState(PluginState.idle); + return false; + } else { + await this.gitManager.updateUpstreamBranch(remoteBranch); + return true; + } + } + return true; + } + async setUpAutoBackup() { + if (this.settings.setLastSaveToLastCommit) { + this.clearAutoBackup(); + const lastCommitDate = await this.gitManager.getLastCommitTime(); + if (lastCommitDate) { + this.localStorage.setLastAutoBackup(lastCommitDate.toString()); + } + } + if (!this.timeoutIDBackup && !this.onFileModifyEventRef) { + const lastAutos = await this.loadLastAuto(); + if (this.settings.autoSaveInterval > 0) { + const now2 = new Date(); + const diff2 = this.settings.autoSaveInterval - Math.round((now2.getTime() - lastAutos.backup.getTime()) / 1e3 / 60); + this.startAutoBackup(diff2 <= 0 ? 0 : diff2); + } + } + } + async setUpAutos() { + this.setUpAutoBackup(); + const lastAutos = await this.loadLastAuto(); + if (this.settings.differentIntervalCommitAndPush && this.settings.autoPushInterval > 0) { + const now2 = new Date(); + const diff2 = this.settings.autoPushInterval - Math.round((now2.getTime() - lastAutos.push.getTime()) / 1e3 / 60); + this.startAutoPush(diff2 <= 0 ? 0 : diff2); + } + if (this.settings.autoPullInterval > 0) { + const now2 = new Date(); + const diff2 = this.settings.autoPullInterval - Math.round((now2.getTime() - lastAutos.pull.getTime()) / 1e3 / 60); + this.startAutoPull(diff2 <= 0 ? 0 : diff2); + } + } + clearAutos() { + this.clearAutoBackup(); + this.clearAutoPush(); + this.clearAutoPull(); + } + startAutoBackup(minutes) { + const time = (minutes != null ? minutes : this.settings.autoSaveInterval) * 6e4; + if (this.settings.autoBackupAfterFileChange) { + if (minutes === 0) { + this.doAutoBackup(); + } else { + this.onFileModifyEventRef = this.app.vault.on("modify", () => this.autoBackupDebouncer()); + this.autoBackupDebouncer = (0, import_obsidian23.debounce)(() => this.doAutoBackup(), time, true); + } + } else { + this.timeoutIDBackup = window.setTimeout(() => this.doAutoBackup(), time); + } + } + doAutoBackup() { + this.promiseQueue.addTask(() => { + if (this.settings.differentIntervalCommitAndPush) { + return this.commit({ fromAutoBackup: true }); + } else { + return this.createBackup(true); + } + }); + this.saveLastAuto(new Date(), "backup"); + this.saveSettings(); + this.startAutoBackup(); + } + startAutoPull(minutes) { + this.timeoutIDPull = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.pullChangesFromRemote()); + this.saveLastAuto(new Date(), "pull"); + this.saveSettings(); + this.startAutoPull(); + }, (minutes != null ? minutes : this.settings.autoPullInterval) * 6e4); + } + startAutoPush(minutes) { + this.timeoutIDPush = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.push()); + this.saveLastAuto(new Date(), "push"); + this.saveSettings(); + this.startAutoPush(); + }, (minutes != null ? minutes : this.settings.autoPushInterval) * 6e4); + } + clearAutoBackup() { + var _a2; + let wasActive = false; + if (this.timeoutIDBackup) { + window.clearTimeout(this.timeoutIDBackup); + this.timeoutIDBackup = void 0; + wasActive = true; + } + if (this.onFileModifyEventRef) { + (_a2 = this.autoBackupDebouncer) == null ? void 0 : _a2.cancel(); + this.app.vault.offref(this.onFileModifyEventRef); + this.onFileModifyEventRef = void 0; + wasActive = true; + } + return wasActive; + } + clearAutoPull() { + if (this.timeoutIDPull) { + window.clearTimeout(this.timeoutIDPull); + this.timeoutIDPull = void 0; + return true; + } + return false; + } + clearAutoPush() { + if (this.timeoutIDPush) { + window.clearTimeout(this.timeoutIDPush); + this.timeoutIDPush = void 0; + return true; + } + return false; + } + async handleConflict(conflicted) { + this.setState(PluginState.conflicted); + this.localStorage.setConflict("true"); + let lines; + if (conflicted !== void 0) { + lines = [ + "# Conflicts", + "Please resolve them and commit them using the commands `Obsidian Git: Commit all changes` followed by `Obsidian Git: Push`", + "(This file will automatically be deleted before commit)", + "[[#Additional Instructions]] available below file list", + "", + ...conflicted.map((e) => { + const file = this.app.vault.getAbstractFileByPath(e); + if (file instanceof import_obsidian23.TFile) { + const link = this.app.metadataCache.fileToLinktext(file, "/"); + return `- [[${link}]]`; + } else { + return `- Not a file: ${e}`; + } + }), + ` +# Additional Instructions +I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. + +\`\`\`diff +<<<<<<< HEAD + File changes in local repository +======= + File changes in remote repository +>>>>>>> origin/main +\`\`\`` + ]; + } + this.writeAndOpenFile(lines == null ? void 0 : lines.join("\n")); + } + async editRemotes() { + if (!await this.isAllInitialized()) + return; + const remotes = await this.gitManager.getRemotes(); + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select or create a new remote by typing its name and selecting it" + }); + const remoteName = await nameModal.open(); + if (remoteName) { + const oldUrl = await this.gitManager.getRemoteUrl(remoteName); + const urlModal = new GeneralModal({ initialValue: oldUrl }); + const remoteURL = await urlModal.open(); + if (remoteURL) { + await this.gitManager.setRemote(remoteName, remoteURL); + return remoteName; + } + } + } + async selectRemoteBranch() { + let remotes = await this.gitManager.getRemotes(); + let selectedRemote; + if (remotes.length === 0) { + selectedRemote = await this.editRemotes(); + if (selectedRemote == void 0) { + remotes = await this.gitManager.getRemotes(); + } + } + const nameModal = new GeneralModal({ options: remotes, placeholder: "Select or create a new remote by typing its name and selecting it" }); + const remoteName = selectedRemote != null ? selectedRemote : await nameModal.open(); + if (remoteName) { + this.displayMessage("Fetching remote branches"); + await this.gitManager.fetch(remoteName); + const branches = await this.gitManager.getRemoteBranches(remoteName); + const branchModal = new GeneralModal({ options: branches, placeholder: "Select or create a new remote branch by typing its name and selecting it" }); + return await branchModal.open(); + } + } + async removeRemote() { + if (!await this.isAllInitialized()) + return; + const remotes = await this.gitManager.getRemotes(); + const nameModal = new GeneralModal({ options: remotes, placeholder: "Select a remote" }); + const remoteName = await nameModal.open(); + if (remoteName) { + this.gitManager.removeRemote(remoteName); + } + } + async writeAndOpenFile(text2) { + if (text2 !== void 0) { + await this.app.vault.adapter.write(this.conflictOutputFile, text2); + } + let fileIsAlreadyOpened = false; + this.app.workspace.iterateAllLeaves((leaf) => { + if (leaf.getDisplayText() != "" && this.conflictOutputFile.startsWith(leaf.getDisplayText())) { + fileIsAlreadyOpened = true; + } + }); + if (!fileIsAlreadyOpened) { + this.app.workspace.openLinkText(this.conflictOutputFile, "/", true); + } + } + displayMessage(message, timeout = 4 * 1e3) { + var _a2; + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + if (!this.settings.disablePopups) { + new import_obsidian23.Notice(message, 5 * 1e3); + } + console.log(`git obsidian message: ${message}`); + } + displayError(message, timeout = 10 * 1e3) { + var _a2; + if (message instanceof Errors.UserCanceledError) { + new import_obsidian23.Notice("Aborted"); + return; + } + message = message.toString(); + new import_obsidian23.Notice(message, timeout); + console.log(`git obsidian error: ${message}`); + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + } +}; +/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json new file mode 100644 index 0000000..db1024b --- /dev/null +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -0,0 +1,9 @@ +{ + "id": "obsidian-git", + "name": "Obsidian Git", + "description": "Backup your vault with Git.", + "isDesktopOnly": false, + "fundingUrl": "https://ko-fi.com/vinzent", + "js": "main.js", + "version": "2.14.0" +} diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css new file mode 100644 index 0000000..e496c17 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/styles.css @@ -0,0 +1,474 @@ +@keyframes loading { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.workspace-leaf-content[data-type='git-view'] .view-content { + padding: 0; +} + +.loading>svg { + animation: 2s linear infinite loading; + transform-origin: 50% 50%; + display: inline-block; +} + +.obsidian-git-center { + margin: auto; + text-align: center; + width: 50%; +} + +.obsidian-git-textarea { + display: block; + margin-left: auto; + margin-right: auto; +} + +.obsidian-git-center-button { + display: block; + margin: 20px auto; +} + +.tooltip.mod-left { + overflow-wrap: break-word; +} + +.tooltip.mod-right { + overflow-wrap: break-word; +} + +.obsidian-git-shortcuts { + margin: 10px; +} + +.diff-err { + height: 100%; + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; +} + +.diff-err-sign { + font-size: 2em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-d-none { + display: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper { + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header { + background-color: var(--background-primary); + border-bottom: 1px solid var(--interactive-accent); + font-family: var(--font-monospace); + height: 35px; + padding: 5px 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header, +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + font-size: 14px; + margin-left: auto; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { + border: 1px solid #b4e2b4; + border-radius: 5px 0 0 5px; + color: #399839; + padding: 2px; + text-align: right; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted { + border: 1px solid #e9aeae; + border-radius: 0 5px 5px 0; + color: #c33; + margin-left: 1px; + padding: 2px; + text-align: left; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 15px; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name { + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + margin-bottom: 1em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { + -webkit-box-pack: end; + -ms-flex-pack: end; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + cursor: pointer; + display: none; + font-size: 12px; + justify-content: flex-end; + padding: 4px 8px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { + background-color: #c8e1ff; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { + margin: 0 4px 0 0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { + border-collapse: collapse; + font-family: Menlo, Consolas, monospace; + font-size: 13px; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { + overflow-y: hidden; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { + display: inline-block; + margin-bottom: -8px; + margin-right: -4px; + overflow-x: scroll; + overflow-y: hidden; + width: 50%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line { + padding: 0 8em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + padding: 0 4.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { + word-wrap: normal; + background: none; + display: inline-block; + padding: 0; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + vertical-align: middle; + white-space: pre; + width: 100%; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del { + background-color: #ffb6ba; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del { + background-color: #8d232881; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + border-radius: 0.2em; + display: inline-block; + margin-top: -1px; + text-decoration: none; + vertical-align: middle; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + background-color: #97f295; + text-align: left; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + background-color: #1d921996; + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { + word-wrap: normal; + background: none; + display: inline; + padding: 0; + white-space: pre; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num1 { + float: left; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num1, +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + padding: 0 0.5em; + text-overflow: ellipsis; + width: 3.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + float: right; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + position: absolute; + text-align: right; + width: 7.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { + content: "\200b"; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + overflow: hidden; + padding: 0 0.5em; + position: absolute; + text-align: right; + text-overflow: ellipsis; + width: 4em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-tbody tr { + position: relative; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { + content: "\200b"; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + direction: rtl; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #fee8e9; + border-color: #e9aeae; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: #dfd; + border-color: #b4e2b4; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #521b1d83; + border-color: #691d1d73; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: rgba(30, 71, 30, 0.5); + border-color: #13501381; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-info { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); + color: var(--text-normal); +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change { + background-color: #fdf2d0; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change { + background-color: #55492480; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change { + background-color: #ded; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change { + background-color: rgba(37, 78, 37, 0.418); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { + margin-bottom: 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { + color: #3572b0; + text-decoration: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a:visited { + color: #3572b0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { + font-weight: 700; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list { + display: block; + list-style: none; + margin: 0; + padding: 0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li { + border-bottom: 1px solid var(--background-modifier-border); + margin: 0; + padding: 5px 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li:last-child { + border-bottom: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { + cursor: pointer; + display: none; + font-size: 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-icon { + fill: currentColor; + margin-right: 10px; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted { + color: #c33; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-added { + color: #399839; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-changed { + color: #d0b44c; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-moved { + color: #3572b0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-tag { + background-color: var(--background-primary); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 10px; + margin-left: 5px; + padding: 0 2px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag { + border: 2px solid #c33; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag { + border: 1px solid #399839; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag { + border: 1px solid #d0b44c; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag { + border: 1px solid #3572b0; +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-kanban/main.js b/.obsidian/plugins/obsidian-kanban/main.js new file mode 100644 index 0000000..23a1347 --- /dev/null +++ b/.obsidian/plugins/obsidian-kanban/main.js @@ -0,0 +1,114 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository +*/ +const requestAnimationFrame = (cb) => activeWindow.requestAnimationFrame(cb); +const cancelAnimationFrame = (id) => activeWindow.cancelAnimationFrame(id); +const setTimeout = (...args) => activeWindow.setTimeout(...args); +const clearTimeout = (id) => activeWindow.clearTimeout(id); + +var JE=Object.create;var ro=Object.defineProperty;var GE=Object.getOwnPropertyDescriptor;var QE=Object.getOwnPropertyNames;var XE=Object.getPrototypeOf,ZE=Object.prototype.hasOwnProperty;var If=e=>ro(e,"__esModule",{value:!0});var Dl=(e,t)=>()=>(e&&(t=e(e=0)),t);var pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),qi=(e,t)=>{If(e);for(var r in t)ro(e,r,{get:t[r],enumerable:!0})},ek=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of QE(t))!ZE.call(e,n)&&n!=="default"&&ro(e,n,{get:()=>t[n],enumerable:!(r=GE(t,n))||r.enumerable});return e},me=e=>ek(If(ro(e!=null?JE(XE(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);function Vn(e,t){for(var r in t)e[r]=t[r];return e}function Of(e){var t=e.parentNode;t&&t.removeChild(e)}function h(e,t,r){var n,i,a,o={};for(a in t)a=="key"?n=t[a]:a=="ref"?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Yi.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return Gi(e,o,n,i,null)}function Gi(e,t,r,n,i){var a={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:i??++Af};return i==null&&fe.vnode!=null&&fe.vnode(a),a}function ri(){return{current:null}}function S(e){return e.children}function ht(e,t){this.props=e,this.context=t}function ii(e,t){if(t==null)return e.__?ii(e.__,e.__.__k.indexOf(e)+1):null;for(var r;t0?Gi(p.type,p.props,p.key,null,p.__v):p)!=null){if(p.__=r,p.__b=r.__b+1,(f=x[c])===null||f&&p.key==f.key&&p.type===f.type)x[c]=void 0;else for(d=0;d2&&(o.children=arguments.length>3?Yi.call(arguments,2):r),Gi(e.type,o,n||e.key,i||e.ref,null)}function ai(e,t){var r={__c:t="__cC"+Ff++,__:e,Consumer:function(n,i){return n.children(i)},Provider:function(n){var i,a;return this.getChildContext||(i=[],(a={})[t]=this,this.getChildContext=function(){return a},this.shouldComponentUpdate=function(o){this.props.value!==o.value&&i.some(Tl)},this.sub=function(o){i.push(o);var s=o.componentWillUnmount;o.componentWillUnmount=function(){i.splice(i.indexOf(o),1),s&&s.call(o)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}var Yi,fe,Af,tk,Ji,Lf,Pf,Ff,io,Nf,nk,Ar=Dl(()=>{m();io={},Nf=[],nk=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;Yi=Nf.slice,fe={__e:function(e,t,r,n){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,n||{}),o=i.__d),o)return i.__E=i}catch(s){e=s}throw e}},Af=0,tk=function(e){return e!=null&&e.constructor===void 0},ht.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Vn({},this.state),typeof e=="function"&&(e=e(Vn({},r),this.props)),e&&Vn(r,e),e!=null&&this.__v&&(t&&this.__h.push(t),Tl(this))},ht.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Tl(this))},ht.prototype.render=S,Ji=[],Lf=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ao.__r=0,Ff=0});var m=Dl(()=>{Ar()});var Et=pt((An,bp)=>{m();"use strict";Object.defineProperty(An,"__esModule",{value:!0});function _n(e){return typeof e=="object"&&!("toString"in e)?Object.prototype.toString.call(e).slice(8,-1):e}var Lk=typeof process=="object"&&!0;function pn(e,t){if(!e)throw Lk?new Error("Invariant failed"):new Error(t())}An.invariant=pn;var Ol=Object.prototype.hasOwnProperty,Pk=Array.prototype.splice,Fk=Object.prototype.toString;function Pr(e){return Fk.call(e).slice(8,-1)}var mo=Object.assign||function(e,t){return Rl(t).forEach(function(r){Ol.call(t,r)&&(e[r]=t[r])}),e},Rl=typeof Object.getOwnPropertySymbols=="function"?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function dr(e){return Array.isArray(e)?mo(e.constructor(e.length),e):Pr(e)==="Map"?new Map(e):Pr(e)==="Set"?new Set(e):e&&typeof e=="object"?mo(Object.create(Object.getPrototypeOf(e)),e):e}var mp=function(){function e(){this.commands=mo({},Nk),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(t,r){return t===r},this.update.newContext=function(){return new e().update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(t){this.update.isEquals=t},enumerable:!0,configurable:!0}),e.prototype.extend=function(t,r){this.commands[t]=r},e.prototype.update=function(t,r){var n=this,i=typeof r=="function"?{$apply:r}:r;Array.isArray(t)&&Array.isArray(i)||pn(!Array.isArray(i),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),pn(typeof i=="object"&&i!==null,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the "+("following commands: "+Object.keys(n.commands).join(", ")+".")});var a=t;return Rl(i).forEach(function(o){if(Ol.call(n.commands,o)){var s=t===a;a=n.commands[o](i[o],a,i,t),s&&n.isEquals(a,t)&&(a=t)}else{var u=Pr(t)==="Map"?n.update(t.get(o),i[o]):n.update(t[o],i[o]),l=Pr(a)==="Map"?a.get(o):a[o];(!n.isEquals(u,l)||typeof u=="undefined"&&!Ol.call(t,o))&&(a===t&&(a=dr(t)),Pr(a)==="Map"?a.set(o,u):a[o]=u)}}),a},e}();An.Context=mp;var Nk={$push:function(e,t,r){return gp(t,r,"$push"),e.length?t.concat(e):t},$unshift:function(e,t,r){return gp(t,r,"$unshift"),e.length?e.concat(t):t},$splice:function(e,t,r,n){return Ok(t,r),e.forEach(function(i){vp(i),t===n&&i.length&&(t=dr(n)),Pk.apply(t,i)}),t},$set:function(e,t,r){return Hk(r),e},$toggle:function(e,t){ta(e,"$toggle");var r=e.length?dr(t):t;return e.forEach(function(n){r[n]=!t[n]}),r},$unset:function(e,t,r,n){return ta(e,"$unset"),e.forEach(function(i){Object.hasOwnProperty.call(t,i)&&(t===n&&(t=dr(n)),delete t[i])}),t},$add:function(e,t,r,n){return yp(t,"$add"),ta(e,"$add"),Pr(t)==="Map"?e.forEach(function(i){var a=i[0],o=i[1];t===n&&t.get(a)!==o&&(t=dr(n)),t.set(a,o)}):e.forEach(function(i){t===n&&!t.has(i)&&(t=dr(n)),t.add(i)}),t},$remove:function(e,t,r,n){return yp(t,"$remove"),ta(e,"$remove"),e.forEach(function(i){t===n&&t.has(i)&&(t=dr(n)),t.delete(i)}),t},$merge:function(e,t,r,n){return Bk(t,e),Rl(e).forEach(function(i){e[i]!==t[i]&&(t===n&&(t=dr(n)),t[i]=e[i])}),t},$apply:function(e,t){return Rk(e),e(t)}},Hl=new mp;An.isEquals=Hl.update.isEquals;An.extend=Hl.extend;An.default=Hl.update;An.default.default=bp.exports=mo(An.default,An);function gp(e,t,r){pn(Array.isArray(e),function(){return"update(): expected target of "+_n(r)+" to be an array; got "+_n(e)+"."}),ta(t[r],r)}function ta(e,t){pn(Array.isArray(e),function(){return"update(): expected spec of "+_n(t)+" to be an array; got "+_n(e)+". Did you forget to wrap your parameter in an array?"})}function Ok(e,t){pn(Array.isArray(e),function(){return"Expected $splice target to be an array; got "+_n(e)}),vp(t.$splice)}function vp(e){pn(Array.isArray(e),function(){return"update(): expected spec of $splice to be an array of arrays; got "+_n(e)+". Did you forget to wrap your parameters in an array?"})}function Rk(e){pn(typeof e=="function",function(){return"update(): expected spec of $apply to be a function; got "+_n(e)+"."})}function Hk(e){pn(Object.keys(e).length===1,function(){return"Cannot have more than one key in an object with $set"})}function Bk(e,t){pn(t&&typeof t=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+_n(t)}),pn(e&&typeof e=="object",function(){return"update(): $merge expects a target of type 'object'; got "+_n(e)})}function yp(e,t){var r=Pr(e);pn(r==="Map"||r==="Set",function(){return"update(): "+_n(t)+" expects a target of type Set or Map; got "+_n(r)})}});var xp=pt((eM,kp)=>{m();"use strict";var Kk=function(t){return $k(t)&&!Uk(t)};function $k(e){return!!e&&typeof e=="object"}function Uk(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||zk(e)}var Vk=typeof Symbol=="function"&&Symbol.for,Wk=Vk?Symbol.for("react.element"):60103;function zk(e){return e.$$typeof===Wk}function jk(e){return Array.isArray(e)?[]:{}}function na(e,t){return t.clone!==!1&&t.isMergeableObject(e)?li(jk(e),e,t):e}function qk(e,t,r){return e.concat(t).map(function(n){return na(n,r)})}function Yk(e,t){if(!t.customMerge)return li;var r=t.customMerge(e);return typeof r=="function"?r:li}function Jk(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function wp(e){return Object.keys(e).concat(Jk(e))}function Ep(e,t){try{return t in e}catch(r){return!1}}function Gk(e,t){return Ep(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Qk(e,t,r){var n={};return r.isMergeableObject(e)&&wp(e).forEach(function(i){n[i]=na(e[i],r)}),wp(t).forEach(function(i){Gk(e,i)||(Ep(e,i)&&r.isMergeableObject(t[i])?n[i]=Yk(i,r)(e[i],t[i],r):n[i]=na(t[i],r))}),n}function li(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||qk,r.isMergeableObject=r.isMergeableObject||Kk,r.cloneUnlessOtherwiseSpecified=na;var n=Array.isArray(t),i=Array.isArray(e),a=n===i;return a?n?r.arrayMerge(e,t,r):Qk(e,t,r):na(t,r)}li.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,i){return li(n,i,r)},{})};var Xk=li;kp.exports=Xk});var _o=pt(it=>{m();"use strict";var Jl=32;it.INT_BITS=Jl;it.INT_MAX=2147483647;it.INT_MIN=-1<0)-(e<0)};it.abs=function(e){var t=e>>Jl-1;return(e^t)-t};it.min=function(e,t){return t^(e^t)&-(e65535)<<4,e>>>=t,r=(e>255)<<3,e>>>=r,t|=r,r=(e>15)<<2,e>>>=r,t|=r,r=(e>3)<<1,e>>>=r,t|=r,t|e>>1};it.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};it.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function Hp(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}it.countTrailingZeros=Hp;it.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};it.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};it.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var ca=new Array(256);(function(e){for(var t=0;t<256;++t){var r=t,n=t,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=r&1,--i;e[t]=n<>>8&255]<<16|ca[e>>>16&255]<<8|ca[e>>>24&255]};it.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};it.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};it.interleave3=function(e,t,r){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,r&=1023,r=(r|r<<16)&4278190335,r=(r|r<<8)&251719695,r=(r|r<<4)&3272356035,r=(r|r<<2)&1227133513,e|r<<2};it.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};it.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>Hp(e)+1}});var $p=pt((PM,Kp)=>{m();"use strict";function Bp(e,t,r){var n=e[r]|0;if(n<=0)return[];var i=new Array(n),a;if(r===e.length-1)for(a=0;a0)return cx(e|0,t);break;case"object":if(typeof e.length=="number")return Bp(e,t,0);break}return[]}Kp.exports=ux});var sh={};qi(sh,{Buffer:()=>ne,INSPECT_MAX_BYTES:()=>jp,SlowBuffer:()=>Ex,isBuffer:()=>ah,kMaxLength:()=>gx});function Up(){Gl=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new dx(s*3/4-a),n=a>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,o[u++]=i>>8&255,o[u++]=i&255;return a===2?(i=hn[e.charCodeAt(t)]<<2|hn[e.charCodeAt(t+1)]>>4,o[u++]=i&255):a===1&&(i=hn[e.charCodeAt(t)]<<10|hn[e.charCodeAt(t+1)]<<4|hn[e.charCodeAt(t+2)]>>2,o[u++]=i>>8&255,o[u++]=i&255),o}function px(e){return Fn[e>>18&63]+Fn[e>>12&63]+Fn[e>>6&63]+Fn[e&63]}function hx(e,t,r){for(var n,i=[],a=t;au?u:s+o));return n===1?(t=e[r-1],i+=Fn[t>>2],i+=Fn[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=Fn[t>>10],i+=Fn[t>>4&63],i+=Fn[t<<2&63],i+="="),a.push(i),a.join("")}function Co(e,t,r,n,i){var a,o,s=i*8-n-1,u=(1<>1,c=-7,d=r?i-1:0,f=r?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=a*256+e[t+d],d+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=o*256+e[t+d],d+=f,c-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-l}return(p?-1:1)*o*Math.pow(2,a-n)}function Wp(e,t,r,n,i,a){var o,s,u,l=a*8-i-1,c=(1<>1,f=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,g=n?1:-1,y=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+d>=1?t+=f/u:t+=f*Math.pow(2,1-d),t*u>=2&&(o++,u/=2),o+d>=c?(s=0,o=c):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=s&255,p+=g,s/=256,i-=8);for(o=o<0;e[r+p]=o&255,p+=g,o/=256,l-=8);e[r+p-g]|=y*128}function Do(){return ne.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function zn(e,t){if(Do()=Do())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Do().toString(16)+" bytes");return e|0}function Ex(e){return+e!=e&&(e=0),ne.alloc(+e)}function Nn(e){return!!(e!=null&&e._isBuffer)}function Jp(e,t){if(Nn(e))return e.length;if(typeof ArrayBuffer!="undefined"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var r=e.length;if(r===0)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Io(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return ih(e).length;default:if(n)return Io(e).length;t=(""+t).toLowerCase(),n=!0}}function kx(e,t,r){var n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Lx(this,t,r);case"utf8":case"utf-8":return Zp(this,t,r);case"ascii":return Ix(this,t,r);case"latin1":case"binary":return Ax(this,t,r);case"base64":return Tx(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Px(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function Or(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function Gp(e,t,r,n,i){if(e.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=ne.from(t,n)),Nn(t))return t.length===0?-1:Qp(e,t,r,n,i);if(typeof t=="number")return t=t&255,ne.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Qp(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Qp(e,t,r,n,i){var a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function u(p,g){return a===1?p[g]:p.readUInt16BE(g*a)}var l;if(i){var c=-1;for(l=r;lo&&(r=o-s),l=r;l>=0;l--){for(var d=!0,f=0;fi&&(n=i)):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o239?4:a>223?3:a>191?2:1;if(i+s<=r){var u,l,c,d;switch(s){case 1:a<128&&(o=a);break;case 2:u=e[i+1],(u&192)==128&&(d=(a&31)<<6|u&63,d>127&&(o=d));break;case 3:u=e[i+1],l=e[i+2],(u&192)==128&&(l&192)==128&&(d=(a&15)<<12|(u&63)<<6|l&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],(u&192)==128&&(l&192)==128&&(c&192)==128&&(d=(a&15)<<18|(u&63)<<12|(l&63)<<6|c&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return Mx(n)}function Mx(e){var t=e.length;if(t<=eh)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function Zt(e,t,r,n,i,a){if(!Nn(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function To(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>(n?i:1-i)*8}function Mo(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>(n?i:3-i)*8&255}function th(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function nh(e,t,r,n,i){return i||th(e,t,r,4),Wp(e,t,r,n,23,4),r+4}function rh(e,t,r,n,i){return i||th(e,t,r,8),Wp(e,t,r,n,52,8),r+8}function Nx(e){if(e=Ox(e).replace(Fx,""),e.length<2)return"";for(;e.length%4!=0;)e=e+"=";return e}function Ox(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Rx(e){return e<16?"0"+e.toString(16):e.toString(16)}function Io(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function Hx(e){for(var t=[],r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function ih(e){return fx(Nx(e))}function Ao(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Kx(e){return e!==e}function ah(e){return e!=null&&(!!e._isBuffer||oh(e)||$x(e))}function oh(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function $x(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&oh(e.slice(0,0))}var Fn,hn,dx,Gl,mx,zp,jp,gx,eh,Fx,lh=Dl(()=>{m();Fn=[],hn=[],dx=typeof Uint8Array!="undefined"?Uint8Array:Array,Gl=!1;mx={}.toString,zp=Array.isArray||function(e){return mx.call(e)=="[object Array]"};jp=50;ne.TYPED_ARRAY_SUPPORT=window.TYPED_ARRAY_SUPPORT!==void 0?window.TYPED_ARRAY_SUPPORT:!0;gx=Do();ne.poolSize=8192;ne._augment=function(e){return e.__proto__=ne.prototype,e};ne.from=function(e,t,r){return qp(null,e,t,r)};ne.TYPED_ARRAY_SUPPORT&&(ne.prototype.__proto__=Uint8Array.prototype,ne.__proto__=Uint8Array);ne.alloc=function(e,t,r){return vx(null,e,t,r)};ne.allocUnsafe=function(e){return Ql(null,e)};ne.allocUnsafeSlow=function(e){return Ql(null,e)};ne.isBuffer=ah;ne.compare=function(t,r){if(!Nn(t)||!Nn(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var n=t.length,i=r.length,a=0,o=Math.min(n,i);a0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""};ne.prototype.compare=function(t,r,n,i,a){if(!Nn(t))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;for(var o=a-i,s=n-r,u=Math.min(o,s),l=this.slice(i,a),c=t.slice(r,n),d=0;da)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return xx(this,t,r,n);case"utf8":case"utf-8":return Sx(this,t,r,n);case"ascii":return Xp(this,t,r,n);case"latin1":case"binary":return _x(this,t,r,n);case"base64":return Cx(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Dx(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}};ne.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};eh=4096;ne.prototype.slice=function(t,r){var n=this.length;t=~~t,r=r===void 0?n:~~r,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r0&&(a*=256);)i+=this[t+--r]*a;return i};ne.prototype.readUInt8=function(t,r){return r||St(t,1,this.length),this[t]};ne.prototype.readUInt16LE=function(t,r){return r||St(t,2,this.length),this[t]|this[t+1]<<8};ne.prototype.readUInt16BE=function(t,r){return r||St(t,2,this.length),this[t]<<8|this[t+1]};ne.prototype.readUInt32LE=function(t,r){return r||St(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};ne.prototype.readUInt32BE=function(t,r){return r||St(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};ne.prototype.readIntLE=function(t,r,n){t=t|0,r=r|0,n||St(t,r,this.length);for(var i=this[t],a=1,o=0;++o=a&&(i-=Math.pow(2,8*r)),i};ne.prototype.readIntBE=function(t,r,n){t=t|0,r=r|0,n||St(t,r,this.length);for(var i=r,a=1,o=this[t+--i];i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o};ne.prototype.readInt8=function(t,r){return r||St(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};ne.prototype.readInt16LE=function(t,r){r||St(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt16BE=function(t,r){r||St(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt32LE=function(t,r){return r||St(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};ne.prototype.readInt32BE=function(t,r){return r||St(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};ne.prototype.readFloatLE=function(t,r){return r||St(t,4,this.length),Co(this,t,!0,23,4)};ne.prototype.readFloatBE=function(t,r){return r||St(t,4,this.length),Co(this,t,!1,23,4)};ne.prototype.readDoubleLE=function(t,r){return r||St(t,8,this.length),Co(this,t,!0,52,8)};ne.prototype.readDoubleBE=function(t,r){return r||St(t,8,this.length),Co(this,t,!1,52,8)};ne.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;Zt(this,t,r,n,a,0)}var o=1,s=0;for(this[r]=t&255;++s=0&&(s*=256);)this[r+o]=t/s&255;return r+n};ne.prototype.writeUInt8=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,1,255,0),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};ne.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):To(this,t,r,!0),r+2};ne.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):To(this,t,r,!1),r+2};ne.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255):Mo(this,t,r,!0),r+4};ne.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):Mo(this,t,r,!1),r+4};ne.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Zt(this,t,r,n,a-1,-a)}var o=0,s=1,u=0;for(this[r]=t&255;++o>0)-u&255;return r+n};ne.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Zt(this,t,r,n,a-1,-a)}var o=n-1,s=1,u=0;for(this[r+o]=t&255;--o>=0&&(s*=256);)t<0&&u===0&&this[r+o+1]!==0&&(u=1),this[r+o]=(t/s>>0)-u&255;return r+n};ne.prototype.writeInt8=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,1,127,-128),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=t&255,r+1};ne.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):To(this,t,r,!0),r+2};ne.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):To(this,t,r,!1),r+2};ne.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,2147483647,-2147483648),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):Mo(this,t,r,!0),r+4};ne.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):Mo(this,t,r,!1),r+4};ne.prototype.writeFloatLE=function(t,r,n){return nh(this,t,r,!0,n)};ne.prototype.writeFloatBE=function(t,r,n){return nh(this,t,r,!1,n)};ne.prototype.writeDoubleLE=function(t,r,n){return rh(this,t,r,!0,n)};ne.prototype.writeDoubleBE=function(t,r,n){return rh(this,t,r,!1,n)};ne.prototype.copy=function(t,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r=0;--o)t[o+r]=this[o+n];else if(a<1e3||!ne.TYPED_ARRAY_SUPPORT)for(o=0;o>>0,n=n===void 0?this.length:n>>>0,t||(t=0);var o;if(typeof t=="number")for(o=r;o{m();var Rr=(lh(),sh);if(Rr&&Rr.default){Lo.exports=Rr.default;for(let e in Rr)Lo.exports[e]=Rr[e]}else Rr&&(Lo.exports=Rr)});var No=pt(He=>{m();"use strict";var vr=_o(),It=$p(),uh=ch().Buffer;window.__TYPEDARRAY_POOL||(window.__TYPEDARRAY_POOL={UINT8:It([32,0]),UINT16:It([32,0]),UINT32:It([32,0]),BIGUINT64:It([32,0]),INT8:It([32,0]),INT16:It([32,0]),INT32:It([32,0]),BIGINT64:It([32,0]),FLOAT:It([32,0]),DOUBLE:It([32,0]),DATA:It([32,0]),UINT8C:It([32,0]),BUFFER:It([32,0])});var Ux=typeof Uint8ClampedArray!="undefined",Vx=typeof BigUint64Array!="undefined",Wx=typeof BigInt64Array!="undefined",lt=window.__TYPEDARRAY_POOL;lt.UINT8C||(lt.UINT8C=It([32,0]));lt.BIGUINT64||(lt.BIGUINT64=It([32,0]));lt.BIGINT64||(lt.BIGINT64=It([32,0]));lt.BUFFER||(lt.BUFFER=It([32,0]));var Po=lt.DATA,Fo=lt.BUFFER;He.free=function(t){if(uh.isBuffer(t))Fo[vr.log2(t.length)].push(t);else{if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!t)return;var r=t.length||t.byteLength,n=vr.log2(r)|0;Po[n].push(t)}};function dh(e){if(!!e){var t=e.length||e.byteLength,r=vr.log2(t);Po[r].push(e)}}function zx(e){dh(e.buffer)}He.freeUint8=He.freeUint16=He.freeUint32=He.freeBigUint64=He.freeInt8=He.freeInt16=He.freeInt32=He.freeBigInt64=He.freeFloat32=He.freeFloat=He.freeFloat64=He.freeDouble=He.freeUint8Clamped=He.freeDataView=zx;He.freeArrayBuffer=dh;He.freeBuffer=function(t){Fo[vr.log2(t.length)].push(t)};He.malloc=function(t,r){if(r===void 0||r==="arraybuffer")return en(t);switch(r){case"uint8":return ec(t);case"uint16":return fh(t);case"uint32":return ph(t);case"int8":return hh(t);case"int16":return mh(t);case"int32":return gh(t);case"float":case"float32":return vh(t);case"double":case"float64":return yh(t);case"uint8_clamped":return bh(t);case"bigint64":return Eh(t);case"biguint64":return wh(t);case"buffer":return xh(t);case"data":case"dataview":return kh(t);default:return null}return null};function en(e){var e=vr.nextPow2(e),t=vr.log2(e),r=Po[t];return r.length>0?r.pop():new ArrayBuffer(e)}He.mallocArrayBuffer=en;function ec(e){return new Uint8Array(en(e),0,e)}He.mallocUint8=ec;function fh(e){return new Uint16Array(en(2*e),0,e)}He.mallocUint16=fh;function ph(e){return new Uint32Array(en(4*e),0,e)}He.mallocUint32=ph;function hh(e){return new Int8Array(en(e),0,e)}He.mallocInt8=hh;function mh(e){return new Int16Array(en(2*e),0,e)}He.mallocInt16=mh;function gh(e){return new Int32Array(en(4*e),0,e)}He.mallocInt32=gh;function vh(e){return new Float32Array(en(4*e),0,e)}He.mallocFloat32=He.mallocFloat=vh;function yh(e){return new Float64Array(en(8*e),0,e)}He.mallocFloat64=He.mallocDouble=yh;function bh(e){return Ux?new Uint8ClampedArray(en(e),0,e):ec(e)}He.mallocUint8Clamped=bh;function wh(e){return Vx?new BigUint64Array(en(8*e),0,e):null}He.mallocBigUint64=wh;function Eh(e){return Wx?new BigInt64Array(en(8*e),0,e):null}He.mallocBigInt64=Eh;function kh(e){return new DataView(en(e),0,e)}He.mallocDataView=kh;function xh(e){e=vr.nextPow2(e);var t=vr.log2(e),r=Fo[t];return r.length>0?r.pop():new uh(e)}He.mallocBuffer=xh;He.clearCache=function(){for(var t=0;t<32;++t)lt.UINT8[t].length=0,lt.UINT16[t].length=0,lt.UINT32[t].length=0,lt.INT8[t].length=0,lt.INT16[t].length=0,lt.INT32[t].length=0,lt.FLOAT[t].length=0,lt.DOUBLE[t].length=0,lt.BIGUINT64[t].length=0,lt.BIGINT64[t].length=0,lt.UINT8C[t].length=0,Po[t].length=0,Fo[t].length=0}});var Th=pt((OM,Dh)=>{m();"use strict";Dh.exports=jx;var Oo=32;function jx(e,t){t<=4*Oo?Ro(0,t-1,e):Bo(0,t-1,e)}function Ro(e,t,r){for(var n=2*(e+1),i=e+1;i<=t;++i){for(var a=r[n++],o=r[n++],s=i,u=n-2;s-- >e;){var l=r[u-2],c=r[u-1];if(lr[t+1]:!0}function Ho(e,t,r,n){e*=2;var i=n[e];return i>1,s=o-n,u=o+n,l=i,c=s,d=o,f=u,p=a,g=e+1,y=t-1,b=0;jn(l,c,r)&&(b=l,l=c,c=b),jn(f,p,r)&&(b=f,f=p,p=b),jn(l,d,r)&&(b=l,l=d,d=b),jn(c,d,r)&&(b=c,c=d,d=b),jn(l,f,r)&&(b=l,l=f,f=b),jn(d,f,r)&&(b=d,d=f,f=b),jn(c,p,r)&&(b=c,c=p,p=b),jn(c,d,r)&&(b=c,c=d,d=b),jn(f,p,r)&&(b=f,f=p,p=b);for(var x=r[2*c],T=r[2*c+1],C=r[2*f],A=r[2*f+1],H=2*l,D=2*d,K=2*p,z=2*i,U=2*o,Z=2*a,J=0;J<2;++J){var se=r[H+J],G=r[D+J],Q=r[K+J];r[z+J]=se,r[U+J]=G,r[Z+J]=Q}_h(s,e,r),_h(u,t,r);for(var ie=g;ie<=y;++ie)if(Ho(ie,x,T,r))ie!==g&&Sh(ie,g,r),++g;else if(!Ho(ie,C,A,r))for(;;)if(Ho(y,C,A,r)){Ho(y,x,T,r)?(qx(ie,g,y,r),++g,--y):(Sh(ie,y,r),--y);break}else{if(--y{m();"use strict";Mh.exports={init:Jx,sweepBipartite:Gx,sweepComplete:Qx,scanBipartite:Xx,scanComplete:Zx};var ct=No(),Yx=_o(),Ko=Th(),sn=1<<28,Hr=1024,At=ct.mallocInt32(Hr),qn=ct.mallocInt32(Hr),Yn=ct.mallocInt32(Hr),Br=ct.mallocInt32(Hr),fi=ct.mallocInt32(Hr),ua=ct.mallocInt32(Hr),De=ct.mallocDouble(Hr*8);function Jx(e){var t=Yx.nextPow2(e);At.length>>1;Ko(De,T);for(var C=0,A=0,g=0;g=sn)H=H-sn|0,pi(Yn,Br,A--,H);else if(H>=0)pi(At,qn,C--,H);else if(H<=-sn){H=-H-sn|0;for(var D=0;D>>1;Ko(De,T);for(var C=0,A=0,H=0,g=0;g>1==De[2*g+3]>>1&&(K=2,g+=1),D<0){for(var z=-(D>>1)-1,U=0;U>1)-1;K===0?pi(At,qn,C--,z):K===1?pi(Yn,Br,A--,z):K===2&&pi(fi,ua,H--,z)}}}function Xx(e,t,r,n,i,a,o,s,u,l,c,d){var f=0,p=2*e,g=t,y=t+e,b=1,x=1;n?x=sn:b=sn;for(var T=i;T>>1;Ko(De,D);for(var K=0,T=0;T=sn?(U=!n,C-=sn):(U=!!n,C-=1),U)hi(At,qn,K++,C);else{var Z=d[C],J=p*C,se=c[J+t+1],G=c[J+t+1+e];e:for(var Q=0;Q>>1;Ko(De,C);for(var A=0,y=0;y=sn)At[A++]=b-sn;else{b-=1;var D=c[b],K=f*b,z=l[K+t+1],U=l[K+t+1+e];e:for(var Z=0;Z=0;--Z)if(At[Z]===b){for(var Q=Z+1;Q{m();"use strict";var Kr="d",mi="ax",Ih="vv",nc="fp",da="es",$o="rs",rc="re",fa="rb",Ah="ri",gi="rp",Uo="bs",ic="be",pa="bb",Lh="bi",vi="bp",ac="rv",oc="Q",sc=[Kr,mi,Ih,$o,rc,fa,Ah,Uo,ic,pa,Lh];function e0(e,t,r){var n="bruteForce"+(e?"Red":"Blue")+(t?"Flip":"")+(r?"Full":""),i=["function ",n,"(",sc.join(),"){","var ",da,"=2*",Kr,";"],a="for(var i="+$o+","+gi+"="+da+"*"+$o+";i<"+rc+";++i,"+gi+"+="+da+"){var x0="+fa+"["+mi+"+"+gi+"],x1="+fa+"["+mi+"+"+gi+"+"+Kr+"],xi="+Ah+"[i];",o="for(var j="+Uo+","+vi+"="+da+"*"+Uo+";j<"+ic+";++j,"+vi+"+="+da+"){var y0="+pa+"["+mi+"+"+vi+"],"+(r?"y1="+pa+"["+mi+"+"+vi+"+"+Kr+"],":"")+"yi="+Lh+"[j];";return e?i.push(a,oc,":",o):i.push(o,oc,":",a),r?i.push("if(y1"+ic+"-"+Uo+"){"),e?(a(!0,!1),i.push("}else{"),a(!1,!1)):(i.push("if("+nc+"){"),a(!0,!0),i.push("}else{"),a(!0,!1),i.push("}}else{if("+nc+"){"),a(!1,!0),i.push("}else{"),a(!1,!1),i.push("}")),i.push("}}return "+t);var o=r.join("")+i.join(""),s=new Function(o);return s()}lc.partial=Ph(!1);lc.full=Ph(!0)});var cc=pt((BM,Nh)=>{m();"use strict";Nh.exports=n0;var t0="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";function n0(e,t){var r="abcdef".split("").concat(t),n=[];return e.indexOf("lo")>=0&&n.push("lo=e[k+n]"),e.indexOf("hi")>=0&&n.push("hi=e[k+o]"),r.push(t0.replace("_",n.join()).replace("$",e)),Function.apply(void 0,r)}});var Hh=pt((KM,Rh)=>{m();"use strict";Rh.exports=o0;var r0=cc(),Oh=r0("lor&&i[d+t]>l;--c,d-=o){for(var f=d,p=d+o,g=0;g>>1,l=2*e,c=u,d=i[l*u+t];o=b?(c=y,d=b):g>=T?(c=p,d=g):(c=x,d=T):b>=T?(c=y,d=b):T>=g?(c=p,d=g):(c=x,d=T);for(var C=l*(s-1),A=l*c,H=0;H{m();"use strict";Wh.exports=b0;var yi=No(),uc=_o(),Bh=Fh(),s0=Bh.partial,l0=Bh.full,yr=tc(),c0=Hh(),bi=cc(),Kh=128,u0=1<<22,d0=1<<22,f0=bi("!(lo>=p0)&&!(p1>=hi)",["p0","p1"]),$h=bi("lo===p0",["p0"]),p0=bi("lo0;){l-=1;var f=l*dc,p=jt[f],g=jt[f+1],y=jt[f+2],b=jt[f+3],x=jt[f+4],T=jt[f+5],C=l*fc,A=$r[C],H=$r[C+1],D=T&1,K=!!(T&16),z=i,U=a,Z=s,J=u;if(D&&(z=s,U=u,Z=i,J=a),!(T&2&&(y=p0(e,p,g,y,z,U,H),g>=y))&&!(T&4&&(g=h0(e,p,g,y,z,U,A),g>=y))){var se=y-g,G=x-b;if(K){if(e*se*(se+G){m();"use strict";Yh.exports=S0;var br=No(),Vo=tc(),w0=zh();function E0(e,t){for(var r=0;r>>1;if(!(o<=0)){var s,u=br.mallocDouble(2*o*i),l=br.mallocInt32(i);if(i=jh(e,o,u,l),i>0){if(o===1&&n)Vo.init(i),s=Vo.sweepComplete(o,r,0,i,u,l,0,i,u,l);else{var c=br.mallocDouble(2*o*a),d=br.mallocInt32(a);a=jh(t,o,c,d),a>0&&(Vo.init(i+a),o===1?s=Vo.sweepBipartite(o,r,0,i,u,l,0,a,c,d):s=w0(o,r,n,i,u,l,a,c,d),br.free(c),br.free(d))}br.free(u),br.free(l)}return s}}}var ha;function qh(e,t){ha.push([e,t])}function k0(e){return ha=[],Wo(e,e,qh,!0),ha}function x0(e,t){return ha=[],Wo(e,t,qh,!1),ha}function S0(e,t,r){var n;switch(arguments.length){case 1:return k0(e);case 2:return typeof t=="function"?Wo(e,e,t,!0):x0(e,t);case 3:return Wo(e,t,r,!1);default:throw new Error("box-intersect: Invalid arguments")}}});var vm=pt((VM,qo)=>{m();var Gh,Qh,Xh,Zh,em,tm,nm,rm,im,zo,pc,am,om,sm,wi,lm,cm,um,dm,fm,pm,hm,mm,gm,jo;(function(e){var t=typeof window=="object"?window:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof qo=="object"&&typeof qo.exports=="object"?e(r(t,r(qo.exports))):e(r(t));function r(n,i){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(a,o){return n[a]=i?i(a,o):o}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])};Gh=function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");t(n,i);function a(){this.constructor=n}n.prototype=i===null?Object.create(i):(a.prototype=i.prototype,new a)},Qh=Object.assign||function(n){for(var i,a=1,o=arguments.length;a=0;c--)(l=n[c])&&(u=(s<3?l(u):s>3?l(i,a,u):l(i,a))||u);return s>3&&u&&Object.defineProperty(i,a,u),u},em=function(n,i){return function(a,o){i(a,o,n)}},tm=function(n,i){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,i)},nm=function(n,i,a,o){function s(u){return u instanceof a?u:new a(function(l){l(u)})}return new(a||(a=Promise))(function(u,l){function c(p){try{f(o.next(p))}catch(g){l(g)}}function d(p){try{f(o.throw(p))}catch(g){l(g)}}function f(p){p.done?u(p.value):s(p.value).then(c,d)}f((o=o.apply(n,i||[])).next())})},rm=function(n,i){var a={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},o,s,u,l;return l={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(f){return function(p){return d([f,p])}}function d(f){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,s&&(u=f[0]&2?s.return:f[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,f[1])).done)return u;switch(s=0,u&&(f=[f[0]&2,u.value]),f[0]){case 0:case 1:u=f;break;case 4:return a.label++,{value:f[1],done:!1};case 5:a.label++,s=f[1],f=[0];continue;case 7:f=a.ops.pop(),a.trys.pop();continue;default:if(u=a.trys,!(u=u.length>0&&u[u.length-1])&&(f[0]===6||f[0]===2)){a=0;continue}if(f[0]===3&&(!u||f[1]>u[0]&&f[1]=n.length&&(n=void 0),{value:n&&n[o++],done:!n}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")},pc=function(n,i){var a=typeof Symbol=="function"&&n[Symbol.iterator];if(!a)return n;var o=a.call(n),s,u=[],l;try{for(;(i===void 0||i-- >0)&&!(s=o.next()).done;)u.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(a=o.return)&&a.call(o)}finally{if(l)throw l.error}}return u},am=function(){for(var n=[],i=0;i1||c(y,b)})})}function c(y,b){try{d(o[y](b))}catch(x){g(u[0][3],x)}}function d(y){y.value instanceof wi?Promise.resolve(y.value.v).then(f,p):g(u[0][2],y)}function f(y){c("next",y)}function p(y){c("throw",y)}function g(y,b){y(b),u.shift(),u.length&&c(u[0][0],u[0][1])}},cm=function(n){var i,a;return i={},o("next"),o("throw",function(s){throw s}),o("return"),i[Symbol.iterator]=function(){return this},i;function o(s,u){i[s]=n[s]?function(l){return(a=!a)?{value:wi(n[s](l)),done:s==="return"}:u?u(l):l}:u}},um=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n[Symbol.asyncIterator],a;return i?i.call(n):(n=typeof zo=="function"?zo(n):n[Symbol.iterator](),a={},o("next"),o("throw"),o("return"),a[Symbol.asyncIterator]=function(){return this},a);function o(u){a[u]=n[u]&&function(l){return new Promise(function(c,d){l=n[u](l),s(c,d,l.done,l.value)})}}function s(u,l,c,d){Promise.resolve(d).then(function(f){u({value:f,done:c})},l)}},dm=function(n,i){return Object.defineProperty?Object.defineProperty(n,"raw",{value:i}):n.raw=i,n};var r=Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i};fm=function(n){if(n&&n.__esModule)return n;var i={};if(n!=null)for(var a in n)a!=="default"&&Object.prototype.hasOwnProperty.call(n,a)&&jo(i,n,a);return r(i,n),i},pm=function(n){return n&&n.__esModule?n:{default:n}},hm=function(n,i,a,o){if(a==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof i=="function"?n!==i||!o:!i.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return a==="m"?o:a==="a"?o.call(n):o?o.value:i.get(n)},mm=function(n,i,a,o,s){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof i=="function"?n!==i||!s:!i.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?s.call(n,a):s?s.value=a:i.set(n,a),a},gm=function(n,i){if(i===null||typeof i!="object"&&typeof i!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?i===n:n.has(i)},e("__extends",Gh),e("__assign",Qh),e("__rest",Xh),e("__decorate",Zh),e("__param",em),e("__metadata",tm),e("__awaiter",nm),e("__generator",rm),e("__exportStar",im),e("__createBinding",jo),e("__values",zo),e("__read",pc),e("__spread",am),e("__spreadArrays",om),e("__spreadArray",sm),e("__await",wi),e("__asyncGenerator",lm),e("__asyncDelegator",cm),e("__asyncValues",um),e("__makeTemplateObject",dm),e("__importStar",fm),e("__importDefault",pm),e("__classPrivateFieldGet",hm),e("__classPrivateFieldSet",mm),e("__classPrivateFieldIn",gm)})});var yc=pt(Pe=>{m();"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});var nt=require("obsidian"),gc="YYYY-MM-DD",vc="gggg-[W]ww",Sm="YYYY-MM",_m="YYYY-[Q]Q",Cm="YYYY";function ga(e){let t=window.app.plugins.getPlugin("periodic-notes");return t&&t.settings?.[e]?.enabled}function va(){try{let{internalPlugins:e,plugins:t}=window.app;if(ga("daily")){let{format:a,folder:o,template:s}=t.getPlugin("periodic-notes")?.settings?.daily||{};return{format:a||gc,folder:o?.trim()||"",template:s?.trim()||""}}let{folder:r,format:n,template:i}=e.getPluginById("daily-notes")?.instance?.options||{};return{format:n||gc,folder:r?.trim()||"",template:i?.trim()||""}}catch(e){console.info("No custom daily note settings found!",e)}}function ya(){try{let e=window.app.plugins,t=e.getPlugin("calendar")?.options,r=e.getPlugin("periodic-notes")?.settings?.weekly;if(ga("weekly"))return{format:r.format||vc,folder:r.folder?.trim()||"",template:r.template?.trim()||""};let n=t||{};return{format:n.weeklyNoteFormat||vc,folder:n.weeklyNoteFolder?.trim()||"",template:n.weeklyNoteTemplate?.trim()||""}}catch(e){console.info("No custom weekly note settings found!",e)}}function ba(){let e=window.app.plugins;try{let t=ga("monthly")&&e.getPlugin("periodic-notes")?.settings?.monthly||{};return{format:t.format||Sm,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom monthly note settings found!",t)}}function wa(){let e=window.app.plugins;try{let t=ga("quarterly")&&e.getPlugin("periodic-notes")?.settings?.quarterly||{};return{format:t.format||_m,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom quarterly note settings found!",t)}}function Ea(){let e=window.app.plugins;try{let t=ga("yearly")&&e.getPlugin("periodic-notes")?.settings?.yearly||{};return{format:t.format||Cm,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom yearly note settings found!",t)}}function Dm(...e){let t=[];for(let n=0,i=e.length;n{let T=n(),C=e.clone().set({hour:T.get("hour"),minute:T.get("minute"),second:T.get("second")});return g&&C.add(parseInt(y,10),b),x?C.format(x.substring(1).trim()):C.format(a)}).replace(/{{\s*yesterday\s*}}/gi,e.clone().subtract(1,"day").format(a)).replace(/{{\s*tomorrow\s*}}/gi,e.clone().add(1,"d").format(a)));return t.foldManager.save(d,u),d}catch(d){console.error(`Failed to create file: '${c}'`,d),new nt.Notice("Unable to create new file.")}}function B0(e,t){return t[Dn(e,"day")]??null}function K0(){let{vault:e}=window.app,{folder:t}=va(),r=e.getAbstractFileByPath(nt.normalizePath(t));if(!r)throw new Im("Failed to find daily notes folder");let n={};return nt.Vault.recurseChildren(r,i=>{if(i instanceof nt.TFile){let a=Si(i,"day");if(a){let o=Dn(a,"day");n[o]=i}}}),n}var Lm=class extends Error{};function $0(){let{moment:e}=window,t=e.localeData()._week.dow,r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];for(;t;)r.push(r.shift()),t--;return r}function U0(e){return $0().indexOf(e.toLowerCase())}async function Pm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ya(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*title\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi,(c,d,f)=>{let p=U0(d);return e.weekday(p).format(f.trim())}));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function V0(e,t){return t[Dn(e,"week")]??null}function W0(){let e={};if(!Hm())return e;let{vault:t}=window.app,{folder:r}=ya(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Lm("Failed to find weekly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"week");if(a){let o=Dn(a,"week");e[o]=i}}}),e}var Fm=class extends Error{};async function Nm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ba(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function z0(e,t){return t[Dn(e,"month")]??null}function j0(){let e={};if(!Bm())return e;let{vault:t}=window.app,{folder:r}=ba(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Fm("Failed to find monthly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"month");if(a){let o=Dn(a,"month");e[o]=i}}}),e}var Om=class extends Error{};async function q0(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=wa(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function Y0(e,t){return t[Dn(e,"quarter")]??null}function J0(){let e={};if(!Km())return e;let{vault:t}=window.app,{folder:r}=wa(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Om("Failed to find quarterly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"quarter");if(a){let o=Dn(a,"quarter");e[o]=i}}}),e}var Rm=class extends Error{};async function G0(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=Ea(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function Q0(e,t){return t[Dn(e,"year")]??null}function X0(){let e={};if(!$m())return e;let{vault:t}=window.app,{folder:r}=Ea(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Rm("Failed to find yearly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"year");if(a){let o=Dn(a,"year");e[o]=i}}}),e}function Z0(){let{app:e}=window,t=e.internalPlugins.plugins["daily-notes"];if(t&&t.enabled)return!0;let r=e.plugins.getPlugin("periodic-notes");return r&&r.settings?.daily?.enabled}function Hm(){let{app:e}=window;if(e.plugins.getPlugin("calendar"))return!0;let t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.weekly?.enabled}function Bm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.monthly?.enabled}function Km(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.quarterly?.enabled}function $m(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.yearly?.enabled}function eS(e){return{day:va,week:ya,month:ba,quarter:wa,year:Ea}[e]()}function tS(e,t){return{day:Am,month:Nm,week:Pm}[e](t)}Pe.DEFAULT_DAILY_NOTE_FORMAT=gc;Pe.DEFAULT_MONTHLY_NOTE_FORMAT=Sm;Pe.DEFAULT_QUARTERLY_NOTE_FORMAT=_m;Pe.DEFAULT_WEEKLY_NOTE_FORMAT=vc;Pe.DEFAULT_YEARLY_NOTE_FORMAT=Cm;Pe.appHasDailyNotesPluginLoaded=Z0;Pe.appHasMonthlyNotesPluginLoaded=Bm;Pe.appHasQuarterlyNotesPluginLoaded=Km;Pe.appHasWeeklyNotesPluginLoaded=Hm;Pe.appHasYearlyNotesPluginLoaded=$m;Pe.createDailyNote=Am;Pe.createMonthlyNote=Nm;Pe.createPeriodicNote=tS;Pe.createQuarterlyNote=q0;Pe.createWeeklyNote=Pm;Pe.createYearlyNote=G0;Pe.getAllDailyNotes=K0;Pe.getAllMonthlyNotes=j0;Pe.getAllQuarterlyNotes=J0;Pe.getAllWeeklyNotes=W0;Pe.getAllYearlyNotes=X0;Pe.getDailyNote=B0;Pe.getDailyNoteSettings=va;Pe.getDateFromFile=Si;Pe.getDateFromPath=H0;Pe.getDateUID=Dn;Pe.getMonthlyNote=z0;Pe.getMonthlyNoteSettings=ba;Pe.getPeriodicNoteSettings=eS;Pe.getQuarterlyNote=Y0;Pe.getQuarterlyNoteSettings=wa;Pe.getTemplateInfo=xi;Pe.getWeeklyNote=V0;Pe.getWeeklyNoteSettings=ya;Pe.getYearlyNote=Q0;Pe.getYearlyNoteSettings=Ea});var Ma=pt((fO,ed)=>{m();"use strict";var u_=Object.prototype.hasOwnProperty,qt="~";function Ta(){}Object.create&&(Ta.prototype=Object.create(null),new Ta().__proto__||(qt=!1));function d_(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function fy(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new d_(r,n||e,i),o=qt?qt+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],a]:e._events[o].push(a):(e._events[o]=a,e._eventsCount++),e}function Cs(e,t){--e._eventsCount==0?e._events=new Ta:delete e._events[t]}function $t(){this._events=new Ta,this._eventsCount=0}$t.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)u_.call(r,n)&&t.push(qt?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};$t.prototype.listeners=function(t){var r=qt?qt+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=new Array(a);i{m();(function(e,t){typeof pd=="object"&&typeof hd!="undefined"?hd.exports=t():typeof define=="function"&&define.amd?define(t):e.Mark=t()})(pd,function(){"use strict";var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},t=function(s,u){if(!(s instanceof u))throw new TypeError("Cannot call a class as a function")},r=function(){function s(u,l){for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:!0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5e3;t(this,s),this.ctx=u,this.iframes=l,this.exclude=c,this.iframesTimeout=d}return r(s,[{key:"getContexts",value:function(){var l=void 0,c=[];return typeof this.ctx=="undefined"||!this.ctx?l=[]:NodeList.prototype.isPrototypeOf(this.ctx)?l=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?l=this.ctx:typeof this.ctx=="string"?l=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):l=[this.ctx],l.forEach(function(d){var f=c.filter(function(p){return p.contains(d)}).length>0;c.indexOf(d)===-1&&!f&&c.push(d)}),c}},{key:"getIframeContents",value:function(l,c){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},f=void 0;try{var p=l.contentWindow;if(f=p.document,!p||!f)throw new Error("iframe inaccessible")}catch(g){d()}f&&c(f)}},{key:"isIframeBlank",value:function(l){var c="about:blank",d=l.getAttribute("src").trim(),f=l.contentWindow.location.href;return f===c&&d!==c&&d}},{key:"observeIframeLoad",value:function(l,c,d){var f=this,p=!1,g=null,y=function b(){if(!p){p=!0,clearTimeout(g);try{f.isIframeBlank(l)||(l.removeEventListener("load",b),f.getIframeContents(l,c,d))}catch(x){d()}}};l.addEventListener("load",y),g=setTimeout(y,this.iframesTimeout)}},{key:"onIframeReady",value:function(l,c,d){try{l.contentWindow.document.readyState==="complete"?this.isIframeBlank(l)?this.observeIframeLoad(l,c,d):this.getIframeContents(l,c,d):this.observeIframeLoad(l,c,d)}catch(f){d()}}},{key:"waitForIframes",value:function(l,c){var d=this,f=0;this.forEachIframe(l,function(){return!0},function(p){f++,d.waitForIframes(p.querySelector("html"),function(){--f||c()})},function(p){p||c()})}},{key:"forEachIframe",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},g=l.querySelectorAll("iframe"),y=g.length,b=0;g=Array.prototype.slice.call(g);var x=function(){--y<=0&&p(b)};y||x(),g.forEach(function(T){s.matches(T,f.exclude)?x():f.onIframeReady(T,function(C){c(T)&&(b++,d(C)),x()},x)})}},{key:"createIterator",value:function(l,c,d){return document.createNodeIterator(l,c,d,!1)}},{key:"createInstanceOnIframe",value:function(l){return new s(l.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(l,c,d){var f=l.compareDocumentPosition(d),p=Node.DOCUMENT_POSITION_PRECEDING;if(f&p)if(c!==null){var g=c.compareDocumentPosition(d),y=Node.DOCUMENT_POSITION_FOLLOWING;if(g&y)return!0}else return!0;return!1}},{key:"getIteratorNode",value:function(l){var c=l.previousNode(),d=void 0;return c===null?d=l.nextNode():d=l.nextNode()&&l.nextNode(),{prevNode:c,node:d}}},{key:"checkIframeFilter",value:function(l,c,d,f){var p=!1,g=!1;return f.forEach(function(y,b){y.val===d&&(p=b,g=y.handled)}),this.compareNodeIframe(l,c,d)?(p===!1&&!g?f.push({val:d,handled:!0}):p!==!1&&!g&&(f[p].handled=!0),!0):(p===!1&&f.push({val:d,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(l,c,d,f){var p=this;l.forEach(function(g){g.handled||p.getIframeContents(g.val,function(y){p.createInstanceOnIframe(y).forEachNode(c,d,f)})})}},{key:"iterateThroughNodes",value:function(l,c,d,f,p){for(var g=this,y=this.createIterator(c,l,f),b=[],x=[],T=void 0,C=void 0,A=function(){var D=g.getIteratorNode(y);return C=D.prevNode,T=D.node,T};A();)this.iframes&&this.forEachIframe(c,function(H){return g.checkIframeFilter(T,C,H,b)},function(H){g.createInstanceOnIframe(H).forEachNode(l,function(D){return x.push(D)},f)}),x.push(T);x.forEach(function(H){d(H)}),this.iframes&&this.handleOpenIframes(b,l,d,f),p()}},{key:"forEachNode",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},g=this.getContexts(),y=g.length;y||p(),g.forEach(function(b){var x=function(){f.iterateThroughNodes(l,b,c,d,function(){--y<=0&&p()})};f.iframes?f.waitForIframes(b,x):x()})}}],[{key:"matches",value:function(l,c){var d=typeof c=="string"?[c]:c,f=l.matches||l.matchesSelector||l.msMatchesSelector||l.mozMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector;if(f){var p=!1;return d.every(function(g){return f.call(l,g)?(p=!0,!1):!0}),p}else return!1}}]),s}(),a=function(){function s(u){t(this,s),this.ctx=u,this.ie=!1;var l=window.navigator.userAgent;(l.indexOf("MSIE")>-1||l.indexOf("Trident")>-1)&&(this.ie=!0)}return r(s,[{key:"log",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"debug",d=this.opt.log;!this.opt.debug||(typeof d=="undefined"?"undefined":e(d))==="object"&&typeof d[c]=="function"&&d[c]("mark.js: "+l)}},{key:"escapeStr",value:function(l){return l.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(l){return this.opt.wildcards!=="disabled"&&(l=this.setupWildcardsRegExp(l)),l=this.escapeStr(l),Object.keys(this.opt.synonyms).length&&(l=this.createSynonymsRegExp(l)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),this.opt.diacritics&&(l=this.createDiacriticsRegExp(l)),l=this.createMergedBlanksRegExp(l),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.createJoinersRegExp(l)),this.opt.wildcards!=="disabled"&&(l=this.createWildcardsRegExp(l)),l=this.createAccuracyRegExp(l),l}},{key:"createSynonymsRegExp",value:function(l){var c=this.opt.synonyms,d=this.opt.caseSensitive?"":"i",f=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var p in c)if(c.hasOwnProperty(p)){var g=c[p],y=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(p):this.escapeStr(p),b=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(g):this.escapeStr(g);y!==""&&b!==""&&(l=l.replace(new RegExp("("+this.escapeStr(y)+"|"+this.escapeStr(b)+")","gm"+d),f+("("+this.processSynomyms(y)+"|")+(this.processSynomyms(b)+")")+f))}return l}},{key:"processSynomyms",value:function(l){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),l}},{key:"setupWildcardsRegExp",value:function(l){return l=l.replace(/(?:\\)*\?/g,function(c){return c.charAt(0)==="\\"?"?":""}),l.replace(/(?:\\)*\*/g,function(c){return c.charAt(0)==="\\"?"*":""})}},{key:"createWildcardsRegExp",value:function(l){var c=this.opt.wildcards==="withSpaces";return l.replace(/\u0001/g,c?"[\\S\\s]?":"\\S?").replace(/\u0002/g,c?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(l){return l.replace(/[^(|)\\]/g,function(c,d,f){var p=f.charAt(d+1);return/[(|)\\]/.test(p)||p===""?c:c+"\0"})}},{key:"createJoinersRegExp",value:function(l){var c=[],d=this.opt.ignorePunctuation;return Array.isArray(d)&&d.length&&c.push(this.escapeStr(d.join(""))),this.opt.ignoreJoiners&&c.push("\\u00ad\\u200b\\u200c\\u200d"),c.length?l.split(/\u0000+/).join("["+c.join("")+"]*"):l}},{key:"createDiacriticsRegExp",value:function(l){var c=this.opt.caseSensitive?"":"i",d=this.opt.caseSensitive?["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105","A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010D","C\xC7\u0106\u010C","d\u0111\u010F","D\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119","E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012B","I\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142","L\u0141","n\xF1\u0148\u0144","N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014D","O\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159","R\u0158","s\u0161\u015B\u0219\u015F","S\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163","T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016B","U\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFF","Y\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017A","Z\u017D\u017B\u0179"]:["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010DC\xC7\u0106\u010C","d\u0111\u010FD\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012BI\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142L\u0141","n\xF1\u0148\u0144N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014DO\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159R\u0158","s\u0161\u015B\u0219\u015FS\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016BU\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFFY\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017AZ\u017D\u017B\u0179"],f=[];return l.split("").forEach(function(p){d.every(function(g){if(g.indexOf(p)!==-1){if(f.indexOf(g)>-1)return!1;l=l.replace(new RegExp("["+g+"]","gm"+c),"["+g+"]"),f.push(g)}return!0})}),l}},{key:"createMergedBlanksRegExp",value:function(l){return l.replace(/[\s]+/gmi,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(l){var c=this,d="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xA1\xBF",f=this.opt.accuracy,p=typeof f=="string"?f:f.value,g=typeof f=="string"?[]:f.limiters,y="";switch(g.forEach(function(b){y+="|"+c.escapeStr(b)}),p){case"partially":default:return"()("+l+")";case"complementary":return y="\\s"+(y||this.escapeStr(d)),"()([^"+y+"]*"+l+"[^"+y+"]*)";case"exactly":return"(^|\\s"+y+")("+l+")(?=$|\\s"+y+")"}}},{key:"getSeparatedKeywords",value:function(l){var c=this,d=[];return l.forEach(function(f){c.opt.separateWordSearch?f.split(" ").forEach(function(p){p.trim()&&d.indexOf(p)===-1&&d.push(p)}):f.trim()&&d.indexOf(f)===-1&&d.push(f)}),{keywords:d.sort(function(f,p){return p.length-f.length}),length:d.length}}},{key:"isNumeric",value:function(l){return Number(parseFloat(l))==l}},{key:"checkRanges",value:function(l){var c=this;if(!Array.isArray(l)||Object.prototype.toString.call(l[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(l),[];var d=[],f=0;return l.sort(function(p,g){return p.start-g.start}).forEach(function(p){var g=c.callNoMatchOnInvalidRanges(p,f),y=g.start,b=g.end,x=g.valid;x&&(p.start=y,p.length=b-y,d.push(p),f=b)}),d}},{key:"callNoMatchOnInvalidRanges",value:function(l,c){var d=void 0,f=void 0,p=!1;return l&&typeof l.start!="undefined"?(d=parseInt(l.start,10),f=d+parseInt(l.length,10),this.isNumeric(l.start)&&this.isNumeric(l.length)&&f-c>0&&f-d>0?p=!0:(this.log("Ignoring invalid or overlapping range: "+(""+JSON.stringify(l))),this.opt.noMatch(l))):(this.log("Ignoring invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:d,end:f,valid:p}}},{key:"checkWhitespaceRanges",value:function(l,c,d){var f=void 0,p=!0,g=d.length,y=c-g,b=parseInt(l.start,10)-y;return b=b>g?g:b,f=b+parseInt(l.length,10),f>g&&(f=g,this.log("End range automatically set to the max value of "+g)),b<0||f-b<0||b>g||f>g?(p=!1,this.log("Invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)):d.substring(b,f).replace(/\s+/g,"")===""&&(p=!1,this.log("Skipping whitespace only range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:b,end:f,valid:p}}},{key:"getTextNodes",value:function(l){var c=this,d="",f=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(p){f.push({start:d.length,end:(d+=p.textContent).length,node:p})},function(p){return c.matchesExclude(p.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){l({value:d,nodes:f})})}},{key:"matchesExclude",value:function(l){return i.matches(l,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(l,c,d){var f=this.opt.element?this.opt.element:"mark",p=l.splitText(c),g=p.splitText(d-c),y=document.createElement(f);return y.setAttribute("data-markjs","true"),this.opt.className&&y.setAttribute("class",this.opt.className),y.textContent=p.textContent,p.parentNode.replaceChild(y,p),g}},{key:"wrapRangeInMappedTextNode",value:function(l,c,d,f,p){var g=this;l.nodes.every(function(y,b){var x=l.nodes[b+1];if(typeof x=="undefined"||x.start>c){if(!f(y.node))return!1;var T=c-y.start,C=(d>y.end?y.end:d)-y.start,A=l.value.substr(0,y.start),H=l.value.substr(C+y.start);if(y.node=g.wrapRangeInTextNode(y.node,T,C),l.value=A+H,l.nodes.forEach(function(D,K){K>=b&&(l.nodes[K].start>0&&K!==b&&(l.nodes[K].start-=C),l.nodes[K].end-=C)}),d-=C,p(y.node.previousSibling,y.start),d>y.end)c=y.end;else return!1}return!0})}},{key:"wrapMatches",value:function(l,c,d,f,p){var g=this,y=c===0?0:c+1;this.getTextNodes(function(b){b.nodes.forEach(function(x){x=x.node;for(var T=void 0;(T=l.exec(x.textContent))!==null&&T[y]!=="";)if(!!d(T[y],x)){var C=T.index;if(y!==0)for(var A=1;A{m();(function(t,r){typeof Ws=="object"&&typeof Id=="object"?Id.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Ws=="object"?Ws.Choices=r():t.Choices=r()})(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:a})},r.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,i){if(i&1&&(n=r(n)),i&8||i&4&&typeof n=="object"&&n&&n.__esModule)return n;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:n}),i&2&&typeof n!="string")for(var o in n)r.d(a,o,function(s){return n[s]}.bind(null,o));return a},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="/public/assets/scripts/",r(r.s=4)}([function(e,t,r){"use strict";var n=function(A){return i(A)&&!a(A)};function i(C){return!!C&&typeof C=="object"}function a(C){var A=Object.prototype.toString.call(C);return A==="[object RegExp]"||A==="[object Date]"||u(C)}var o=typeof Symbol=="function"&&Symbol.for,s=o?Symbol.for("react.element"):60103;function u(C){return C.$$typeof===s}function l(C){return Array.isArray(C)?[]:{}}function c(C,A){return A.clone!==!1&&A.isMergeableObject(C)?x(l(C),C,A):C}function d(C,A,H){return C.concat(A).map(function(D){return c(D,H)})}function f(C,A){if(!A.customMerge)return x;var H=A.customMerge(C);return typeof H=="function"?H:x}function p(C){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(C).filter(function(A){return C.propertyIsEnumerable(A)}):[]}function g(C){return Object.keys(C).concat(p(C))}function y(C,A){try{return A in C&&!(Object.hasOwnProperty.call(C,A)&&Object.propertyIsEnumerable.call(C,A))}catch(H){return!1}}function b(C,A,H){var D={};return H.isMergeableObject(C)&&g(C).forEach(function(K){D[K]=c(C[K],H)}),g(A).forEach(function(K){y(C,K)||(!H.isMergeableObject(A[K])||!C[K]?D[K]=c(A[K],H):D[K]=f(K,H)(C[K],A[K],H))}),D}function x(C,A,H){H=H||{},H.arrayMerge=H.arrayMerge||d,H.isMergeableObject=H.isMergeableObject||n,H.cloneUnlessOtherwiseSpecified=c;var D=Array.isArray(A),K=Array.isArray(C),z=D===K;return z?D?H.arrayMerge(C,A,H):b(C,A,H):c(A,H)}x.all=function(A,H){if(!Array.isArray(A))throw new Error("first argument should be an array");return A.reduce(function(D,K){return x(D,K,H)},{})};var T=x;e.exports=T},function(e,t,r){"use strict";(function(n,i){var a=r(3),o;typeof self!="undefined"?o=self:typeof window!="undefined"?o=window:typeof n!="undefined"?o=n:o=i;var s=Object(a.a)(o);t.a=s}).call(this,r(5),r(6)(e))},function(e,t,r){(function(n,i){e.exports=i()})(this,function(){return function(n){var i={};function a(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return n[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=n,a.c=i,a.d=function(o,s,u){a.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:u})},a.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},a.t=function(o,s){if(1&s&&(o=a(o)),8&s||4&s&&typeof o=="object"&&o&&o.__esModule)return o;var u=Object.create(null);if(a.r(u),Object.defineProperty(u,"default",{enumerable:!0,value:o}),2&s&&typeof o!="string")for(var l in o)a.d(u,l,function(c){return o[c]}.bind(null,l));return u},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="",a(a.s=1)}([function(n,i){n.exports=function(a){return Array.isArray?Array.isArray(a):Object.prototype.toString.call(a)==="[object Array]"}},function(n,i,a){function o(f){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p})(f)}function s(f,p){for(var g=0;g1&&arguments[1]!==void 0?arguments[1]:{limit:!1};this._log(`--------- +Search pattern: "`.concat(b,'"'));var T=this._prepareSearchers(b),C=T.tokenSearchers,A=T.fullSearcher,H=this._search(C,A),D=H.weights,K=H.results;return this._computeScore(D,K),this.options.shouldSort&&this._sort(K),x.limit&&typeof x.limit=="number"&&(K=K.slice(0,x.limit)),this._format(K)}},{key:"_prepareSearchers",value:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",x=[];if(this.options.tokenize)for(var T=b.split(this.options.tokenSeparator),C=0,A=T.length;C0&&arguments[0]!==void 0?arguments[0]:[],x=arguments.length>1?arguments[1]:void 0,T=this.list,C={},A=[];if(typeof T[0]=="string"){for(var H=0,D=T.length;H1)throw new Error("Key weight has to be > 0 and <= 1");G=G.name}else K[G]={weight:1};this._analyze({key:G,value:this.options.getFn(Z,G),record:Z,index:z},{resultMap:C,results:A,tokenSearchers:b,fullSearcher:x})}return{weights:K,results:A}}},{key:"_analyze",value:function(b,x){var T=b.key,C=b.arrayIndex,A=C===void 0?-1:C,H=b.value,D=b.record,K=b.index,z=x.tokenSearchers,U=z===void 0?[]:z,Z=x.fullSearcher,J=Z===void 0?[]:Z,se=x.resultMap,G=se===void 0?{}:se,Q=x.results,ie=Q===void 0?[]:Q;if(H!=null){var he=!1,pe=-1,ge=0;if(typeof H=="string"){this._log(` +Key: `.concat(T===""?"-":T));var be=J.search(H);if(this._log('Full text: "'.concat(H,'", score: ').concat(be.score)),this.options.tokenize){for(var Te=H.split(this.options.tokenSeparator),F=[],N=0;N-1&&(Ue=(Ue+pe)/2),this._log("Score average:",Ue);var dt=!this.options.tokenize||!this.options.matchAllTokens||ge>=U.length;if(this._log(` +Check Matches: `.concat(dt)),(he||be.isMatch)&&dt){var vt=G[K];vt?vt.output.push({key:T,arrayIndex:A,value:H,score:Ue,matchedIndices:be.matchedIndices}):(G[K]={item:D,output:[{key:T,arrayIndex:A,value:H,score:Ue,matchedIndices:be.matchedIndices}]},ie.push(G[K]))}}else if(c(H))for(var Ot=0,Bn=H.length;Ot-1&&(he.arrayIndex=ie.arrayIndex),J.matches.push(he)}}}),this.options.includeScore&&C.push(function(Z,J){J.score=Z.score});for(var A=0,H=b.length;Ax)return s(y,this.pattern,T);var C=this.options,A=C.location,H=C.distance,D=C.threshold,K=C.findAllMatches,z=C.minMatchCharLength;return u(y,this.pattern,this.patternAlphabet,{location:A,distance:H,threshold:D,findAllMatches:K,minMatchCharLength:z})}}])&&o(f.prototype,p),g&&o(f,g),d}();n.exports=c},function(n,i){var a=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;n.exports=function(o,s){var u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:/ +/g,l=new RegExp(s.replace(a,"\\$&").replace(u,"|")),c=o.match(l),d=!!c,f=[];if(d)for(var p=0,g=c.length;p=N;W-=1){var j=W-1,q=c[u.charAt(j)];if(q&&(J[j]=1),Ge[W]=(Ge[W+1]<<1|1)&q,be!==0&&(Ge[W]|=(ie[W+1]|ie[W])<<1|1|ie[W+1]),Ge[W]&ge&&(he=o(l,{errors:be,currentLocation:j,expectedLocation:D,distance:y}))<=z){if(z=he,(U=j)<=D)break;N=Math.max(1,2*D-U)}}if(o(l,{errors:be+1,currentLocation:D,expectedLocation:D,distance:y})>z)break;ie=Ge}return{isMatch:U>=0,score:he===0?.001:he,matchedIndices:s(J,H)}}},function(n,i){n.exports=function(a,o){var s=o.errors,u=s===void 0?0:s,l=o.currentLocation,c=l===void 0?0:l,d=o.expectedLocation,f=d===void 0?0:d,p=o.distance,g=p===void 0?100:p,y=u/a.length,b=Math.abs(f-c);return g?y+b/g:b?1:y}},function(n,i){n.exports=function(){for(var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,s=[],u=-1,l=-1,c=0,d=a.length;c=o&&s.push([u,l]),u=-1)}return a[c-1]&&c-u>=o&&s.push([u,c-1]),s}},function(n,i){n.exports=function(a){for(var o={},s=a.length,u=0;u0)return"Unexpected "+(R.length>1?"keys":"key")+" "+('"'+R.join('", "')+'" found in '+I+". ")+"Expected to find one of the known reducer keys instead: "+('"'+k.join('", "')+'". Unexpected keys will be ignored.')}function y(O){Object.keys(O).forEach(function(w){var E=O[w],v=E(void 0,{type:l.INIT});if(typeof v=="undefined")throw new Error('Reducer "'+w+`" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);if(typeof E(void 0,{type:l.PROBE_UNKNOWN_ACTION()})=="undefined")throw new Error('Reducer "'+w+'" returned undefined when probed with a random type. '+("Don't try to handle "+l.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function b(O){for(var w=Object.keys(O),E={},v=0;v-1?O.map(function(E){var v=E;return v.id===parseInt(w.choiceId,10)&&(v.selected=!0),v}):O;case"REMOVE_ITEM":return w.choiceId>-1?O.map(function(E){var v=E;return v.id===parseInt(w.choiceId,10)&&(v.selected=!1),v}):O;case"FILTER_CHOICES":return O.map(function(E){var v=E;return v.active=w.results.some(function(k){var I=k.item,R=k.score;return I.id===v.id?(v.score=R,!0):!1}),v});case"ACTIVATE_CHOICES":return O.map(function(E){var v=E;return v.active=w.active,v});case"CLEAR_CHOICES":return G;default:return O}}var ie={loading:!1},he=function(w,E){switch(w===void 0&&(w=ie),E.type){case"SET_IS_LOADING":return{loading:E.isLoading};default:return w}},pe=he,ge=function(w,E){return Math.floor(Math.random()*(E-w)+w)},be=function(w){return Array.from({length:w},function(){return ge(0,36).toString(36)}).join("")},Te=function(w,E){var v=w.id||w.name&&w.name+"-"+be(2)||be(4);return v=v.replace(/(:|\.|\[|\]|,)/g,""),v=E+"-"+v,v},F=function(w){return Object.prototype.toString.call(w).slice(8,-1)},N=function(w,E){return E!=null&&F(E)===w},ut=function(w,E){return E===void 0&&(E=document.createElement("div")),w.nextSibling?w.parentNode.insertBefore(E,w.nextSibling):w.parentNode.appendChild(E),E.appendChild(w)},Ge=function(w,E,v){if(v===void 0&&(v=1),!(!(w instanceof Element)||typeof E!="string")){for(var k=(v>0?"next":"previous")+"ElementSibling",I=w[k];I;){if(I.matches(E))return I;I=I[k]}return I}},W=function(w,E,v){if(v===void 0&&(v=1),!w)return!1;var k;return v>0?k=E.scrollTop+E.offsetHeight>=w.offsetTop+w.offsetHeight:k=w.offsetTop>=E.scrollTop,k},j=function(w){return typeof w!="string"?w:w.replace(/&/g,"&").replace(/>/g,"&rt;").replace(/"'+j(w)+'"'},maxItemText:function(w){return"Only "+w+" values can be added"},valueComparer:function(w,E){return w===E},fuseOptions:{includeScore:!0},callbackOnInit:null,callbackOnCreateTemplates:null,classNames:ti},Rt={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice"},Wt={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL"},yt={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},Y="text",oe="select-one",Ee="select-multiple",ze=4,Tt=function(){function O(E){var v=E.element,k=E.type,I=E.classNames,R=E.position;this.element=v,this.classNames=I,this.type=k,this.position=R,this.isOpen=!1,this.isFlipped=!1,this.isFocussed=!1,this.isDisabled=!1,this.isLoading=!1,this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this)}var w=O.prototype;return w.addEventListeners=function(){this.element.addEventListener("focus",this._onFocus),this.element.addEventListener("blur",this._onBlur)},w.removeEventListeners=function(){this.element.removeEventListener("focus",this._onFocus),this.element.removeEventListener("blur",this._onBlur)},w.shouldFlip=function(v){if(typeof v!="number")return!1;var k=!1;return this.position==="auto"?k=!window.matchMedia("(min-height: "+(v+1)+"px)").matches:this.position==="top"&&(k=!0),k},w.setActiveDescendant=function(v){this.element.setAttribute("aria-activedescendant",v)},w.removeActiveDescendant=function(){this.element.removeAttribute("aria-activedescendant")},w.open=function(v){this.element.classList.add(this.classNames.openState),this.element.setAttribute("aria-expanded","true"),this.isOpen=!0,this.shouldFlip(v)&&(this.element.classList.add(this.classNames.flippedState),this.isFlipped=!0)},w.close=function(){this.element.classList.remove(this.classNames.openState),this.element.setAttribute("aria-expanded","false"),this.removeActiveDescendant(),this.isOpen=!1,this.isFlipped&&(this.element.classList.remove(this.classNames.flippedState),this.isFlipped=!1)},w.focus=function(){this.isFocussed||this.element.focus()},w.addFocusState=function(){this.element.classList.add(this.classNames.focusState)},w.removeFocusState=function(){this.element.classList.remove(this.classNames.focusState)},w.enable=function(){this.element.classList.remove(this.classNames.disabledState),this.element.removeAttribute("aria-disabled"),this.type===oe&&this.element.setAttribute("tabindex","0"),this.isDisabled=!1},w.disable=function(){this.element.classList.add(this.classNames.disabledState),this.element.setAttribute("aria-disabled","true"),this.type===oe&&this.element.setAttribute("tabindex","-1"),this.isDisabled=!0},w.wrap=function(v){ut(v,this.element)},w.unwrap=function(v){this.element.parentNode.insertBefore(v,this.element),this.element.parentNode.removeChild(this.element)},w.addLoadingState=function(){this.element.classList.add(this.classNames.loadingState),this.element.setAttribute("aria-busy","true"),this.isLoading=!0},w.removeLoadingState=function(){this.element.classList.remove(this.classNames.loadingState),this.element.removeAttribute("aria-busy"),this.isLoading=!1},w._onFocus=function(){this.isFocussed=!0},w._onBlur=function(){this.isFocussed=!1},O}();function En(O,w){for(var E=0;E0?this.element.scrollTop+ae-V:v.offsetTop;requestAnimationFrame(function(){I._animateScroll(de,k)})}},w._scrollDown=function(v,k,I){var R=(I-v)/k,V=R>1?R:1;this.element.scrollTop=v+V},w._scrollUp=function(v,k,I){var R=(v-I)/k,V=R>1?R:1;this.element.scrollTop=v-V},w._animateScroll=function(v,k){var I=this,R=ze,V=this.element.scrollTop,X=!1;k>0?(this._scrollDown(V,R,v),Vv&&(X=!0)),X&&requestAnimationFrame(function(){I._animateScroll(v,k)})},O}();function fn(O,w){for(var E=0;E0?"treeitem":"option"),Object.assign(Re.dataset,{choice:"",id:de,value:ke,selectText:v}),Ce?(Re.classList.add(X),Re.dataset.choiceDisabled="",Re.setAttribute("aria-disabled","true")):(Re.classList.add(R),Re.dataset.choiceSelectable=""),Re},input:function(w,E){var v=w.input,k=w.inputCloned,I=Object.assign(document.createElement("input"),{type:"text",className:v+" "+k,autocomplete:"off",autocapitalize:"off",spellcheck:!1});return I.setAttribute("role","textbox"),I.setAttribute("aria-autocomplete","list"),I.setAttribute("aria-label",E),I},dropdown:function(w){var E=w.list,v=w.listDropdown,k=document.createElement("div");return k.classList.add(E,v),k.setAttribute("aria-expanded","false"),k},notice:function(w,E,v){var k=w.item,I=w.itemChoice,R=w.noResults,V=w.noChoices;v===void 0&&(v="");var X=[k,I];return v==="no-choices"?X.push(V):v==="no-results"&&X.push(R),Object.assign(document.createElement("div"),{innerHTML:E,className:X.join(" ")})},option:function(w){var E=w.label,v=w.value,k=w.customProperties,I=w.active,R=w.disabled,V=new Option(E,v,!1,I);return k&&(V.dataset.customProperties=k),V.disabled=R,V}},le=ee,re=function(w){var E=w.value,v=w.label,k=w.id,I=w.groupId,R=w.disabled,V=w.elementId,X=w.customProperties,ae=w.placeholder,de=w.keyCode;return{type:Wt.ADD_CHOICE,value:E,label:v,id:k,groupId:I,disabled:R,elementId:V,customProperties:X,placeholder:ae,keyCode:de}},ve=function(w){return{type:Wt.FILTER_CHOICES,results:w}},ue=function(w){return w===void 0&&(w=!0),{type:Wt.ACTIVATE_CHOICES,active:w}},Fe=function(){return{type:Wt.CLEAR_CHOICES}},Ne=function(w){var E=w.value,v=w.label,k=w.id,I=w.choiceId,R=w.groupId,V=w.customProperties,X=w.placeholder,ae=w.keyCode;return{type:Wt.ADD_ITEM,value:E,label:v,id:k,choiceId:I,groupId:R,customProperties:V,placeholder:X,keyCode:ae}},Me=function(w,E){return{type:Wt.REMOVE_ITEM,id:w,choiceId:E}},Qt=function(w,E){return{type:Wt.HIGHLIGHT_ITEM,id:w,highlighted:E}},bt=function(w){var E=w.value,v=w.id,k=w.active,I=w.disabled;return{type:Wt.ADD_GROUP,value:E,id:v,active:k,disabled:I}},ar=function(){return{type:"CLEAR_ALL"}},or=function(w){return{type:"RESET_TO",state:w}},zi=function(w){return{type:"SET_IS_LOADING",isLoading:w}};function no(O,w){for(var E=0;E=0?this._store.getGroupById(V):null;return this._store.dispatch(Qt(I,!0)),k&&this.passedElement.triggerEvent(Rt.highlightItem,{id:I,value:ae,label:ke,groupValue:ye&&ye.value?ye.value:null}),this},w.unhighlightItem=function(v){if(!v)return this;var k=v.id,I=v.groupId,R=I===void 0?-1:I,V=v.value,X=V===void 0?"":V,ae=v.label,de=ae===void 0?"":ae,ke=R>=0?this._store.getGroupById(R):null;return this._store.dispatch(Qt(k,!1)),this.passedElement.triggerEvent(Rt.highlightItem,{id:k,value:X,label:de,groupValue:ke&&ke.value?ke.value:null}),this},w.highlightAll=function(){var v=this;return this._store.items.forEach(function(k){return v.highlightItem(k)}),this},w.unhighlightAll=function(){var v=this;return this._store.items.forEach(function(k){return v.unhighlightItem(k)}),this},w.removeActiveItemsByValue=function(v){var k=this;return this._store.activeItems.filter(function(I){return I.value===v}).forEach(function(I){return k._removeItem(I)}),this},w.removeActiveItems=function(v){var k=this;return this._store.activeItems.filter(function(I){var R=I.id;return R!==v}).forEach(function(I){return k._removeItem(I)}),this},w.removeHighlightedItems=function(v){var k=this;return v===void 0&&(v=!1),this._store.highlightedActiveItems.forEach(function(I){k._removeItem(I),v&&k._triggerChange(I.value)}),this},w.showDropdown=function(v){var k=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){k.dropdown.show(),k.containerOuter.open(k.dropdown.distanceFromTopWindow),!v&&k._canSearch&&k.input.focus(),k.passedElement.triggerEvent(Rt.showDropdown,{})}),this)},w.hideDropdown=function(v){var k=this;return this.dropdown.isActive?(requestAnimationFrame(function(){k.dropdown.hide(),k.containerOuter.close(),!v&&k._canSearch&&(k.input.removeActiveDescendant(),k.input.blur()),k.passedElement.triggerEvent(Rt.hideDropdown,{})}),this):this},w.getValue=function(v){v===void 0&&(v=!1);var k=this._store.activeItems.reduce(function(I,R){var V=v?R.value:R;return I.push(V),I},[]);return this._isSelectOneElement?k[0]:k},w.setValue=function(v){var k=this;return this.initialised?(v.forEach(function(I){return k._setChoiceOrItem(I)}),this):this},w.setChoiceByValue=function(v){var k=this;if(!this.initialised||this._isTextElement)return this;var I=Array.isArray(v)?v:[v];return I.forEach(function(R){return k._findAndSelectChoiceByValue(R)}),this},w.setChoices=function(v,k,I,R){var V=this;if(v===void 0&&(v=[]),k===void 0&&(k="value"),I===void 0&&(I="label"),R===void 0&&(R=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof k!="string"||!k)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(R&&this.clearChoices(),typeof v=="function"){var X=v(this);if(typeof Promise=="function"&&X instanceof Promise)return new Promise(function(ae){return requestAnimationFrame(ae)}).then(function(){return V._handleLoadingState(!0)}).then(function(){return X}).then(function(ae){return V.setChoices(ae,k,I,R)}).catch(function(ae){V.config.silent||console.error(ae)}).then(function(){return V._handleLoadingState(!1)}).then(function(){return V});if(!Array.isArray(X))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: "+typeof X);return this.setChoices(X,k,I,!1)}if(!Array.isArray(v))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),v.forEach(function(ae){ae.choices?V._addGroup({id:parseInt(ae.id,10)||null,group:ae,valueKey:k,labelKey:I}):V._addChoice({value:ae[k],label:ae[I],isSelected:ae.selected,isDisabled:ae.disabled,customProperties:ae.customProperties,placeholder:ae.placeholder})}),this._stopLoading(),this},w.clearChoices=function(){return this._store.dispatch(Fe()),this},w.clearStore=function(){return this._store.dispatch(ar()),this},w.clearInput=function(){var v=!this._isSelectOneElement;return this.input.clear(v),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch(ue(!0))),this},w._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var v=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,k=this._isSelectElement,I=this._currentState.items!==this._prevState.items;!v||(k&&this._renderChoices(),I&&this._renderItems(),this._prevState=this._currentState)}},w._renderChoices=function(){var v=this,k=this._store,I=k.activeGroups,R=k.activeChoices,V=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return v.choiceList.scrollToTop()}),I.length>=1&&!this._isSearching){var X=R.filter(function(Ie){return Ie.placeholder===!0&&Ie.groupId===-1});X.length>=1&&(V=this._createChoicesFragment(X,V)),V=this._createGroupsFragment(I,R,V)}else R.length>=1&&(V=this._createChoicesFragment(R,V));if(V.childNodes&&V.childNodes.length>0){var ae=this._store.activeItems,de=this._canAddItem(ae,this.input.value);de.response?(this.choiceList.append(V),this._highlightChoice()):this.choiceList.append(this._getTemplate("notice",de.notice))}else{var ke,ye;this._isSearching?(ye=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,ke=this._getTemplate("notice",ye,"no-results")):(ye=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,ke=this._getTemplate("notice",ye,"no-choices")),this.choiceList.append(ke)}},w._renderItems=function(){var v=this._store.activeItems||[];this.itemList.clear();var k=this._createItemsFragment(v);k.childNodes&&this.itemList.append(k)},w._createGroupsFragment=function(v,k,I){var R=this;I===void 0&&(I=document.createDocumentFragment());var V=function(ae){return k.filter(function(de){return R._isSelectOneElement?de.groupId===ae.id:de.groupId===ae.id&&(R.config.renderSelectedChoices==="always"||!de.selected)})};return this.config.shouldSort&&v.sort(this.config.sorter),v.forEach(function(X){var ae=V(X);if(ae.length>=1){var de=R._getTemplate("choiceGroup",X);I.appendChild(de),R._createChoicesFragment(ae,I,!0)}}),I},w._createChoicesFragment=function(v,k,I){var R=this;k===void 0&&(k=document.createDocumentFragment()),I===void 0&&(I=!1);var V=this.config,X=V.renderSelectedChoices,ae=V.searchResultLimit,de=V.renderChoiceLimit,ke=this._isSearching?we:this.config.sorter,ye=function(zt){var Mr=X==="auto"?R._isSelectOneElement||!zt.selected:!0;if(Mr){var Ir=R._getTemplate("choice",zt,R.config.itemSelectText);k.appendChild(Ir)}},Ie=v;X==="auto"&&!this._isSelectOneElement&&(Ie=v.filter(function(Ht){return!Ht.selected}));var Oe=Ie.reduce(function(Ht,zt){return zt.placeholder?Ht.placeholderChoices.push(zt):Ht.normalChoices.push(zt),Ht},{placeholderChoices:[],normalChoices:[]}),Ce=Oe.placeholderChoices,$e=Oe.normalChoices;(this.config.shouldSort||this._isSearching)&&$e.sort(ke);var Le=Ie.length,Re=this._isSelectOneElement?[].concat(Ce,$e):$e;this._isSearching?Le=ae:de&&de>0&&!I&&(Le=de);for(var ft=0;ft=R){var ae=V?this._searchChoices(v):0;this.passedElement.triggerEvent(Rt.search,{value:v,resultCount:ae})}else X&&(this._isSearching=!1,this._store.dispatch(ue(!0)))}},w._canAddItem=function(v,k){var I=!0,R=typeof this.config.addItemText=="function"?this.config.addItemText(k):this.config.addItemText;if(!this._isSelectOneElement){var V=Ue(v,k);this.config.maxItemCount>0&&this.config.maxItemCount<=v.length&&(I=!1,R=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&V&&I&&(I=!1,R=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(k):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&I&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(k)&&(I=!1,R=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(k):this.config.customAddItemText)}return{response:I,notice:R}},w._searchChoices=function(v){var k=typeof v=="string"?v.trim():v,I=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(k.length<1&&k===I+" ")return 0;var R=this._store.searchableChoices,V=k,X=[].concat(this.config.searchFields),ae=Object.assign(this.config.fuseOptions,{keys:X}),de=new i.a(R,ae),ke=de.search(V);return this._currentValue=k,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch(ve(ke)),ke.length},w._addEventListeners=function(){var v=document,k=v.documentElement;k.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),k.addEventListener("click",this._onClick,{passive:!0}),k.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},w._removeEventListeners=function(){var v=document,k=v.documentElement;k.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),k.removeEventListener("click",this._onClick),k.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},w._onKeyDown=function(v){var k,I=v.target,R=v.keyCode,V=v.ctrlKey,X=v.metaKey,ae=this._store.activeItems,de=this.input.isFocussed,ke=this.dropdown.isActive,ye=this.itemList.hasChildren(),Ie=String.fromCharCode(R),Oe=yt.BACK_KEY,Ce=yt.DELETE_KEY,$e=yt.ENTER_KEY,Le=yt.A_KEY,Re=yt.ESC_KEY,ft=yt.UP_KEY,Ht=yt.DOWN_KEY,zt=yt.PAGE_UP_KEY,Mr=yt.PAGE_DOWN_KEY,Ir=V||X;!this._isTextElement&&/[a-zA-Z0-9-_ ]/.test(Ie)&&this.showDropdown();var ni=(k={},k[Le]=this._onAKey,k[$e]=this._onEnterKey,k[Re]=this._onEscapeKey,k[ft]=this._onDirectionKey,k[zt]=this._onDirectionKey,k[Ht]=this._onDirectionKey,k[Mr]=this._onDirectionKey,k[Ce]=this._onDeleteKey,k[Oe]=this._onDeleteKey,k);ni[R]&&ni[R]({event:v,target:I,keyCode:R,metaKey:X,activeItems:ae,hasFocusedInput:de,hasActiveDropdown:ke,hasItems:ye,hasCtrlDownKeyPressed:Ir})},w._onKeyUp=function(v){var k=v.target,I=v.keyCode,R=this.input.value,V=this._store.activeItems,X=this._canAddItem(V,R),ae=yt.BACK_KEY,de=yt.DELETE_KEY;if(this._isTextElement){var ke=X.notice&&R;if(ke){var ye=this._getTemplate("notice",X.notice);this.dropdown.element.innerHTML=ye.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var Ie=(I===ae||I===de)&&!k.value,Oe=!this._isTextElement&&this._isSearching,Ce=this._canSearch&&X.response;Ie&&Oe?(this._isSearching=!1,this._store.dispatch(ue(!0))):Ce&&this._handleSearch(this.input.value)}this._canSearch=this.config.searchEnabled},w._onAKey=function(v){var k=v.hasItems,I=v.hasCtrlDownKeyPressed;if(I&&k){this._canSearch=!1;var R=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;R&&this.highlightAll()}},w._onEnterKey=function(v){var k=v.event,I=v.target,R=v.activeItems,V=v.hasActiveDropdown,X=yt.ENTER_KEY,ae=I.hasAttribute("data-button");if(this._isTextElement&&I.value){var de=this.input.value,ke=this._canAddItem(R,de);ke.response&&(this.hideDropdown(!0),this._addItem({value:de}),this._triggerChange(de),this.clearInput())}if(ae&&(this._handleButtonAction(R,I),k.preventDefault()),V){var ye=this.dropdown.getChild("."+this.config.classNames.highlightedState);ye&&(R[0]&&(R[0].keyCode=X),this._handleChoiceAction(R,ye)),k.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),k.preventDefault())},w._onEscapeKey=function(v){var k=v.hasActiveDropdown;k&&(this.hideDropdown(!0),this.containerOuter.focus())},w._onDirectionKey=function(v){var k=v.event,I=v.hasActiveDropdown,R=v.keyCode,V=v.metaKey,X=yt.DOWN_KEY,ae=yt.PAGE_UP_KEY,de=yt.PAGE_DOWN_KEY;if(I||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var ke=R===X||R===de?1:-1,ye=V||R===de||R===ae,Ie="[data-choice-selectable]",Oe;if(ye)ke>0?Oe=this.dropdown.element.querySelector(Ie+":last-of-type"):Oe=this.dropdown.element.querySelector(Ie);else{var Ce=this.dropdown.element.querySelector("."+this.config.classNames.highlightedState);Ce?Oe=Ge(Ce,Ie,ke):Oe=this.dropdown.element.querySelector(Ie)}Oe&&(W(Oe,this.choiceList.element,ke)||this.choiceList.scrollToChildElement(Oe,ke),this._highlightChoice(Oe)),k.preventDefault()}},w._onDeleteKey=function(v){var k=v.event,I=v.target,R=v.hasFocusedInput,V=v.activeItems;R&&!I.value&&!this._isSelectOneElement&&(this._handleBackspace(V),k.preventDefault())},w._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},w._onTouchEnd=function(v){var k=v||v.touches[0],I=k.target,R=this._wasTap&&this.containerOuter.element.contains(I);if(R){var V=I===this.containerOuter.element||I===this.containerInner.element;V&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),v.stopPropagation()}this._wasTap=!0},w._onMouseDown=function(v){var k=v.target;if(k instanceof HTMLElement){if(ji&&this.choiceList.element.contains(k)){var I=this.choiceList.element.firstElementChild,R=this._direction==="ltr"?v.offsetX>=I.offsetWidth:v.offsetX0;R&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},w._onFocus=function(v){var k=this,I,R=v.target,V=this.containerOuter.element.contains(R);if(!!V){var X=(I={},I[Y]=function(){R===k.input.element&&k.containerOuter.addFocusState()},I[oe]=function(){k.containerOuter.addFocusState(),R===k.input.element&&k.showDropdown(!0)},I[Ee]=function(){R===k.input.element&&(k.showDropdown(!0),k.containerOuter.addFocusState())},I);X[this.passedElement.element.type]()}},w._onBlur=function(v){var k=this,I=v.target,R=this.containerOuter.element.contains(I);if(R&&!this._isScrollingOnIe){var V,X=this._store.activeItems,ae=X.some(function(ke){return ke.highlighted}),de=(V={},V[Y]=function(){I===k.input.element&&(k.containerOuter.removeFocusState(),ae&&k.unhighlightAll(),k.hideDropdown(!0))},V[oe]=function(){k.containerOuter.removeFocusState(),(I===k.input.element||I===k.containerOuter.element&&!k._canSearch)&&k.hideDropdown(!0)},V[Ee]=function(){I===k.input.element&&(k.containerOuter.removeFocusState(),k.hideDropdown(!0),ae&&k.unhighlightAll())},V);de[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},w._onFormReset=function(){this._store.dispatch(or(this._initialState))},w._highlightChoice=function(v){var k=this;v===void 0&&(v=null);var I=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(!!I.length){var R=v,V=Array.from(this.dropdown.element.querySelectorAll("."+this.config.classNames.highlightedState));V.forEach(function(X){X.classList.remove(k.config.classNames.highlightedState),X.setAttribute("aria-selected","false")}),R?this._highlightPosition=I.indexOf(R):(I.length>this._highlightPosition?R=I[this._highlightPosition]:R=I[I.length-1],R||(R=I[0])),R.classList.add(this.config.classNames.highlightedState),R.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(Rt.highlightChoice,{el:R}),this.dropdown.isActive&&(this.input.setActiveDescendant(R.id),this.containerOuter.setActiveDescendant(R.id))}},w._addItem=function(v){var k=v.value,I=v.label,R=I===void 0?null:I,V=v.choiceId,X=V===void 0?-1:V,ae=v.groupId,de=ae===void 0?-1:ae,ke=v.customProperties,ye=ke===void 0?null:ke,Ie=v.placeholder,Oe=Ie===void 0?!1:Ie,Ce=v.keyCode,$e=Ce===void 0?null:Ce,Le=typeof k=="string"?k.trim():k,Re=$e,ft=ye,Ht=this._store.items,zt=R||Le,Mr=X||-1,Ir=de>=0?this._store.getGroupById(de):null,ni=Ht?Ht.length+1:1;return this.config.prependValue&&(Le=this.config.prependValue+Le.toString()),this.config.appendValue&&(Le+=this.config.appendValue.toString()),this._store.dispatch(Ne({value:Le,label:zt,id:ni,choiceId:Mr,groupId:de,customProperties:ye,placeholder:Oe,keyCode:Re})),this._isSelectOneElement&&this.removeActiveItems(ni),this.passedElement.triggerEvent(Rt.addItem,{id:ni,value:Le,label:zt,customProperties:ft,groupValue:Ir&&Ir.value?Ir.value:void 0,keyCode:Re}),this},w._removeItem=function(v){if(!v||!N("Object",v))return this;var k=v.id,I=v.value,R=v.label,V=v.choiceId,X=v.groupId,ae=X>=0?this._store.getGroupById(X):null;return this._store.dispatch(Me(k,V)),ae&&ae.value?this.passedElement.triggerEvent(Rt.removeItem,{id:k,value:I,label:R,groupValue:ae.value}):this.passedElement.triggerEvent(Rt.removeItem,{id:k,value:I,label:R}),this},w._addChoice=function(v){var k=v.value,I=v.label,R=I===void 0?null:I,V=v.isSelected,X=V===void 0?!1:V,ae=v.isDisabled,de=ae===void 0?!1:ae,ke=v.groupId,ye=ke===void 0?-1:ke,Ie=v.customProperties,Oe=Ie===void 0?null:Ie,Ce=v.placeholder,$e=Ce===void 0?!1:Ce,Le=v.keyCode,Re=Le===void 0?null:Le;if(!(typeof k=="undefined"||k===null)){var ft=this._store.choices,Ht=R||k,zt=ft?ft.length+1:1,Mr=this._baseId+"-"+this._idNames.itemChoice+"-"+zt;this._store.dispatch(re({id:zt,groupId:ye,elementId:Mr,value:k,label:Ht,disabled:de,customProperties:Oe,placeholder:$e,keyCode:Re})),X&&this._addItem({value:k,label:Ht,choiceId:zt,customProperties:Oe,placeholder:$e,keyCode:Re})}},w._addGroup=function(v){var k=this,I=v.group,R=v.id,V=v.valueKey,X=V===void 0?"value":V,ae=v.labelKey,de=ae===void 0?"label":ae,ke=N("Object",I)?I.choices:Array.from(I.getElementsByTagName("OPTION")),ye=R||Math.floor(new Date().valueOf()*Math.random()),Ie=I.disabled?I.disabled:!1;if(ke){this._store.dispatch(bt({value:I.label,id:ye,active:!0,disabled:Ie}));var Oe=function($e){var Le=$e.disabled||$e.parentNode&&$e.parentNode.disabled;k._addChoice({value:$e[X],label:N("Object",$e)?$e[de]:$e.innerHTML,isSelected:$e.selected,isDisabled:Le,groupId:ye,customProperties:$e.customProperties,placeholder:$e.placeholder})};ke.forEach(Oe)}else this._store.dispatch(bt({value:I.label,id:I.id,active:!1,disabled:I.disabled}))},w._getTemplate=function(v){var k;if(!v)return null;for(var I=this.config.classNames,R=arguments.length,V=new Array(R>1?R-1:0),X=1;X{m();(function(e,t){typeof sl=="object"&&typeof Nw!="undefined"?t(sl):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e.immutableJSONPatch={}))})(sl,function(e){"use strict";function t(W){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(q){return typeof q}:t=function(q){return q&&typeof Symbol=="function"&&q.constructor===Symbol&&q!==Symbol.prototype?"symbol":typeof q},t(W)}function r(W,j){return JSON.stringify(W)===JSON.stringify(j)}function n(W,j){return W===j}function i(W){return W.slice(0,W.length-1)}function a(W){return W[W.length-1]}function o(W,j){var q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:n;if(W.length3&&arguments[3]!==void 0?arguments[3]:!1;if(j.length===0)return q;var we=j[0],xe=y(W?W[we]:void 0,j.slice(1),q,te);if(!s(W))if(te){var Ue=typeof we=="number"?[]:{};return Ue[we]=xe,Ue}else throw new Error("Path does not exist");return p(W,we,xe)}function b(W,j,q){if(j.length===0)return q(W);if(!s(W))throw new Error("Path doesn't exist");var te=j[0],we=b(W[te],j.slice(1),q);return p(W,te,we)}function x(W,j){if(j.length===0)return W;if(!s(W))throw new Error("Path does not exist");if(j.length===1){var q=j[0];if(q in W){var te=f(W);return Array.isArray(te)?te.splice(q,1):delete te[q],te}else return W}var we=j[0],xe=x(W[we],j.slice(1));return p(W,we,xe)}function T(W,j,q){var te=j.slice(0,j.length-1),we=j[j.length-1];return b(W,te,function(xe){if(!Array.isArray(xe))throw new TypeError("Array expected at path "+JSON.stringify(te));var Ue=f(xe);return Ue.splice(we,0,q),Ue})}function C(W,j){return W===void 0?!1:j.length===0?!0:C(W[j[0]],j.slice(1))}function A(W){var j=W.split("/");return j.shift(),j.map(function(q){return q.replace(/~1/g,"/").replace(/~0/g,"~")})}function H(W){return W.map(function(j){return"/"+String(j).replace(/~/g,"~0").replace(/\//g,"~1")}).join("")}function D(W,j,q){for(var te=W,we=0;we{m();(function(){var e;typeof wf!="undefined"?e=wf.exports=n:e=function(){return this||(0,eval)("this")}(),e.format=n,e.vsprintf=r,typeof console!="undefined"&&typeof console.log=="function"&&(e.printf=t);function t(){console.log(n.apply(null,arguments))}function r(i,a){return n.apply(null,[i].concat(a))}function n(i){for(var a=1,o=[].slice.call(arguments),s=0,u=i.length,l="",c,d=!1,f,p,g=!1,y,b=function(){return o[a++]},x=function(){for(var T="";/\d/.test(i[s]);)T+=i[s++],c=i[s];return T.length>0?parseInt(T):null};sTf});m();m();function Il(e,t){let r=Object.keys(t).map(n=>ok(e,n,t[n]));return r.length===1?r[0]:function(){r.forEach(n=>n())}}function ok(e,t,r){let n=e[t],i=e.hasOwnProperty(t),a=r(n);return n&&Object.setPrototypeOf(a,n),Object.setPrototypeOf(o,a),e[t]=o,s;function o(...u){return a===n&&e[t]===o&&s(),a.apply(this,u)}function s(){e[t]===o&&(i?e[t]=n:delete e[t]),a!==n&&(a=n,Object.setPrototypeOf(o,n||Function))}}var Dt=me(require("obsidian"));m();m();Ar();var oi,kt,Al,qf,si=0,Yf=[],lo=[],Jf=fe.__b,Gf=fe.__r,Qf=fe.diffed,Xf=fe.__c,Zf=fe.unmount;function Xi(e,t){fe.__h&&fe.__h(kt,e,si||t),si=0;var r=kt.__H||(kt.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:lo}),r.__[e]}function sr(e){return si=1,Zi(tp,e)}function Zi(e,t,r){var n=Xi(oi++,2);return n.t=e,n.__c||(n.__=[r?r(t):tp(void 0,t),function(i){var a=n.t(n.__[0],i);n.__[0]!==a&&(n.__=[a,n.__[1]],n.__c.setState({}))}],n.__c=kt),n.__}function Sn(e,t){var r=Xi(oi++,3);!fe.__s&&Pl(r.__H,t)&&(r.__=e,r.u=t,kt.__H.__h.push(r))}function Lr(e,t){var r=Xi(oi++,4);!fe.__s&&Pl(r.__H,t)&&(r.__=e,r.u=t,kt.__h.push(r))}function Xt(e){return si=5,lr(function(){return{current:e}},[])}function co(e,t,r){si=6,Lr(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},r==null?r:r.concat(e))}function lr(e,t){var r=Xi(oi++,7);return Pl(r.__H,t)?(r.__V=e(),r.u=t,r.__h=e,r.__V):r.__}function cr(e,t){return si=8,lr(function(){return e},t)}function uo(e){var t=kt.context[e.__c],r=Xi(oi++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(kt)),t.props.value):e.__}function fo(e,t){fe.useDebugValue&&fe.useDebugValue(t?t(e):e)}function sk(){for(var e;e=Yf.shift();)if(e.__P)try{e.__H.__h.forEach(po),e.__H.__h.forEach(Ll),e.__H.__h=[]}catch(t){e.__H.__h=[],fe.__e(t,e.__v)}}fe.__b=function(e){kt=null,Jf&&Jf(e)},fe.__r=function(e){Gf&&Gf(e),oi=0;var t=(kt=e.__c).__H;t&&(Al===kt?(t.__h=[],kt.__h=[],t.__.forEach(function(r){r.__V=lo,r.u=void 0})):(t.__h.forEach(po),t.__h.forEach(Ll),t.__h=[])),Al=kt},fe.diffed=function(e){Qf&&Qf(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Yf.push(t)!==1&&qf===fe.requestAnimationFrame||((qf=fe.requestAnimationFrame)||function(r){var n,i=function(){clearTimeout(a),ep&&cancelAnimationFrame(n),setTimeout(r)},a=setTimeout(i,100);ep&&(n=requestAnimationFrame(i))})(sk)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.__V!==lo&&(r.__=r.__V),r.u=void 0,r.__V=lo})),Al=kt=null},fe.__c=function(e,t){t.some(function(r){try{r.__h.forEach(po),r.__h=r.__h.filter(function(n){return!n.__||Ll(n)})}catch(n){t.some(function(i){i.__h&&(i.__h=[])}),t=[],fe.__e(n,r.__v)}}),Xf&&Xf(e,t)},fe.unmount=function(e){Zf&&Zf(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{po(n)}catch(i){t=i}}),t&&fe.__e(t,r.__v))};var ep=typeof requestAnimationFrame=="function";function po(e){var t=kt,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),kt=t}function Ll(e){var t=kt;e.__c=e.__(),kt=t}function Pl(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function tp(e,t){return typeof t=="function"?t(e):t}Ar();Ar();function np(e,t){for(var r in t)e[r]=t[r];return e}function Fl(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Nl(e){this.props=e}function lk(e,t){function r(i){var a=this.props.ref,o=a==i.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,i)||!o:Fl(this.props,i)}function n(i){return this.shouldComponentUpdate=r,h(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(Nl.prototype=new ht).isPureReactComponent=!0,Nl.prototype.shouldComponentUpdate=function(e,t){return Fl(this.props,e)||Fl(this.state,t)};var rp=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),rp&&rp(e)};var ck=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function uk(e){function t(r){var n=np({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=ck,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var ip=function(e,t){return e==null?null:wt(wt(e).map(t))},dk={map:ip,forEach:ip,count:function(e){return e?wt(e).length:0},only:function(e){var t=wt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:wt},fk=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}fk(e,t,r,n)};var ap=fe.unmount;function ho(){this.__u=0,this.t=null,this.__b=null}function op(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function pk(e){var t,r,n;function i(a){if(t||(t=e()).then(function(o){r=o.default||o},function(o){n=o}),n)throw n;if(!r)throw t;return h(r,a)}return i.displayName="Lazy",i.__f=!0,i}function ea(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),ap&&ap(e)},(ho.prototype=new ht).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=op(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,g){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(y){return d(y,p,g)}),f.__c&&f.__c.__P===p&&(f.__e&&g.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=g)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},ho.prototype.componentWillUnmount=function(){this.t=[]},ho.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=np({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&h(S,null,e.fallback);return i&&(i.__h=null),[h(S,null,t.__e?null:e.children),i]};var sp=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),xn(h(hk,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function gk(e,t){var r=h(mk,{__v:e,i:t});return r.containerInfo=t,r}(ea.prototype=new ht).__e=function(e){var t=this,r=op(t.__v),n=t.o.get(e);return n[0]++,function(i){var a=function(){t.props.revealOrder?(n.push(i),sp(t,e,n)):i()};r?r(a):a()}},ea.prototype.render=function(e){this.u=null,this.o=new Map;var t=wt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},ea.prototype.componentDidUpdate=ea.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){sp(e,r,t)})};var lp=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,vk=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,yk=typeof document!="undefined",bk=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function wk(e,t,r){return t.__k==null&&(t.textContent=""),xn(e,t),typeof r=="function"&&r(),e?e.__c:null}function Ek(e,t,r){return Qi(e,t),typeof r=="function"&&r(),e?e.__c:null}ht.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(ht.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var cp=fe.event;function kk(){}function xk(){return this.cancelBubble}function Sk(){return this.defaultPrevented}fe.event=function(e){return cp&&(e=cp(e)),e.persist=kk,e.isPropagationStopped=xk,e.isDefaultPrevented=Sk,e.nativeEvent=e};var up,dp={configurable:!0,get:function(){return this.class}},fp=fe.vnode;fe.vnode=function(e){var t=e.type,r=e.props,n=r;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var a in n={},r){var o=r[a];yk&&a==="children"&&t==="noscript"||a==="value"&&"defaultValue"in r&&o==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&o===!0?o="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+t)&&!bk(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():i&&vk.test(a)?a=a.replace(/[A-Z0-9]/,"-$&").toLowerCase():o===null&&(o=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),n[a]&&(a="oninputCapture")),n[a]=o)}t=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.value.indexOf(s.props.value)!=-1})),t=="select"&&n.defaultValue!=null&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.multiple?n.defaultValue.indexOf(s.props.value)!=-1:n.defaultValue==s.props.value})),e.props=n,r.class!=r.className&&(dp.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",dp))}e.$$typeof=lp,fp&&fp(e)};var pp=fe.__r;fe.__r=function(e){pp&&pp(e),up=e.__c};var _k={ReactCurrentDispatcher:{current:{readContext:function(e){return up.__n[e.__c].props.value}}}};function Ck(e){return h.bind(null,e)}function hp(e){return!!e&&e.$$typeof===lp}function Dk(e){return hp(e)?so.apply(null,arguments):e}function Tk(e){return!!e.__k&&(xn(null,e),!0)}function Mk(e){return e&&(e.base||e.nodeType===1&&e)||null}var Ik=function(e,t){return e(t)},Ak=function(e,t){return e(t)};var P={useState:sr,useReducer:Zi,useEffect:Sn,useLayoutEffect:Lr,useRef:Xt,useImperativeHandle:co,useMemo:lr,useCallback:cr,useContext:uo,useDebugValue:fo,version:"17.0.2",Children:dk,render:wk,hydrate:Ek,unmountComponentAtNode:Tk,createPortal:gk,createElement:h,createContext:ai,createFactory:Ck,cloneElement:Dk,createRef:ri,Fragment:S,isValidElement:hp,findDOMNode:Mk,Component:ht,PureComponent:Nl,memo:lk,forwardRef:uk,flushSync:Ak,unstable_batchedUpdates:Ik,StrictMode:S,Suspense:ho,SuspenseList:ea,lazy:pk,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:_k};m();function Ze(e){return e.win}function ur(e){return e.doc.body}m();var Ub=me(Et());m();var We=P.createContext(null),go=P.createContext(null);m();var Ip=me(Et()),hr=me(require("obsidian"));m();var Cp=me(xp()),fr=me(Et());m();function Sp(e){return Object.prototype.toString.call(e)==="[object Object]"}function _p(e){var t,r;return Sp(e)===!1?!1:(t=e.constructor,t===void 0?!0:(r=t.prototype,!(Sp(r)===!1||r.hasOwnProperty("isPrototypeOf")===!1)))}m();function Zk(e,t){return e.length!==t.length?!1:e.every((r,n,i)=>n===i.length-1?r!==t[n]:r===t[n])}function ex(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}var an;(function(i){i[i.Before=0]="Before",i[i.After=1]="After",i[i.Self=2]="Self",i[i.NotSiblings=3]="NotSiblings"})(an||(an={}));function ra(e,t){if(ex(e,t))return 2;if(!Zk(e,t))return 3;let r=e.length-1;return e[r]=0;n--)r={children:{[e[n]]:r}};return r}function ia(e,t){let r=t;for(let n=e.length-2;n>=0;n--)r={children:{[e[n]]:r}};return r}function Dp(e){return ia(e,{children:{$splice:[[e[e.length-1],1]]}})}function Tp(e,t,r=0){return ia(e,{children:{$splice:[[e[e.length-1]+r,0,...t]]}})}function nx(e,t){return ia(e,{children:{$push:t}})}function rx(e,t){return ia(e,{children:{$unshift:t}})}function aa(e,t,r,n){let i=n?n(mt(e,t)):mt(e,t),o=ra(t,r)===an.After?-1:0,s=Dp(t),u=Tp(r,[i],o),l=(0,Cp.default)(s,u,{isMergeableObject:d=>_p(d)||Array.isArray(d)});return(0,fr.default)(e,l)}function Fr(e,t){return(0,fr.default)(e,Dp(t))}function pr(e,t,r){return(0,fr.default)(e,Tp(t,r))}function Bl(e,t,r){return(0,fr.default)(e,nx(t,r))}function Mp(e,t,r){return(0,fr.default)(e,rx(t,r))}function vo(e,t,r){return(0,fr.default)(e,tx(t,r))}function Kl(e,t,r){return(0,fr.default)(e,ia(t,r))}var $l="kanban-plugin";function ci(){}function B(e){return`${$l}__${e}`}function Ae(e=9){return Math.random().toString(36).slice(2,2+e)}function Ul(e,t,r,n,i){var l,c;let a=mt(e,t.slice(0,-1)),o=mt(r,n.slice(0,-1)),s=(l=a==null?void 0:a.data)==null?void 0:l.shouldMarkItemsComplete,u=(c=o==null?void 0:o.data)==null?void 0:c.shouldMarkItemsComplete;return!s&&!u||u===!!i.data.isComplete?i:(0,Ip.default)(i,{data:{isComplete:{$set:u}}})}function yo(){let e=P.useRef(!1);return{oncompositionstart:()=>{e.current=!0},oncompositionend:()=>{e.current=!1},getShouldIMEBlockAction:()=>e.current}}var ix=/<%/;async function Ap(e,t){let r=t?e.app.vault.getAbstractFileByPath(t):null;if(r&&r instanceof hr.TFile){let n=app.workspace.getActiveViewOfType(hr.MarkdownView);try{(n==null?void 0:n.getMode())!=="source"&&await n.setState({...n.getState(),mode:"source"},{});let{templatesEnabled:i,templaterEnabled:a,templatesPlugin:o,templaterPlugin:s}=Vl(e.app),u=await e.app.vault.read(r);if(i&&a)return ix.test(u)?await s.append_template_to_active_file(r):await o.instance.insertTemplate(r);if(i)return await o.instance.insertTemplate(r);if(a)return await s.append_template_to_active_file(r);await e.app.vault.modify(e.app.workspace.getActiveFile(),u)}catch(i){console.error(i),e.setError(i)}}}function Nr(e){var s,u,l,c,d;let t=e.internalPlugins.plugins,r=(s=t["daily-notes"])==null?void 0:s.enabled,n=(u=t["daily-notes"])==null?void 0:u.instance.options.format,i=(l=e.plugins.plugins["nldates-obsidian"])==null?void 0:l.settings.format,a=(c=t.templates)==null?void 0:c.enabled,o=(d=t.templates)==null?void 0:d.instance.options.dateFormat;return r&&n||i||a&&o||"YYYY-MM-DD"}function ui(e){var a,o,s;let t=e.internalPlugins.plugins,r=(a=e.plugins.plugins["nldates-obsidian"])==null?void 0:a.settings.timeFormat,n=(o=t.templates)==null?void 0:o.enabled,i=(s=t.templates)==null?void 0:s.instance.options.timeFormat;return r||n&&i||"HH:mm"}var Lp=/[\\^$.*+?()[\]{}|]/g,ax=RegExp(Lp.source);function Ln(e){return e&&ax.test(e)?e.replace(Lp,"\\$&"):e||""}function Vl(e){var s;let t=e.internalPlugins.plugins.templates,r=t.enabled,n=e.plugins.plugins["templater-obsidian"],i=e.plugins.enabledPlugins.has("templater-obsidian"),a=n&&((s=this.app.plugins.plugins["templater-obsidian"].settings)==null?void 0:s.empty_file_template),o=r?t.instance.options.folder:n?n.settings.template_folder:void 0;return{templatesPlugin:t,templatesEnabled:r,templaterPlugin:n==null?void 0:n.templater,templaterEnabled:i,templaterEmptyFileTemplate:a,templateFolder:o}}function bo(e){let r=(e.getSetting("tag-colors")||[]).reduce((n,i)=>(i.tagKey&&(n[i.tagKey]=i),n),{});return n=>r[n]?r[n]:null}function wo(e){let r=(e.getSetting("date-colors")||[]).map(i=>{if(i.isToday)return["today",i];if(i.isBefore)return["before",i];if(i.isAfter)return["after",i];let a=i.direction==="after"?1:-1,o=(0,hr.moment)();return o.add(i.distance*a,i.unit),[o,i]}),n=(0,hr.moment)();return r.sort((i,a)=>i[0]==="today"?typeof a[0]=="string"?-1:a[0].isSame(n,"day")?1:-1:a[0]==="today"?typeof i[0]=="string"?1:i[0].isSame(n,"day")?-1:1:i[0]==="after"||i[0]==="before"?1:a[0]==="after"||a[0]==="before"||i[0].isBefore(a[0])?-1:1),i=>{let a=(0,hr.moment)(),o=r.find(s=>{let u=s[1];if(u.isToday)return i.isSame(a,"day");if(u.isAfter)return i.isAfter(a);if(u.isBefore)return i.isBefore(a);let l="days";return u.unit==="hours"&&(l="hours"),u.direction==="before"?i.isBetween(s[0],a,l,"[]"):i.isBetween(a,s[0],l,"[]")});return o?o[1]:null}}m();m();function et(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,n;r{n.has(t)&&(n.delete(t),n.size===0&&r.push(i))}),r.forEach(n=>{this.idScopes.delete(n),this.scrollStates.delete(n)})}};var xt=P.createContext(null),mr=P.createContext(""),sa=P.createContext(null),la=P.createContext(new oa),Eo=P.createContext(null),ko=P.createContext(null);m();m();m();var Pp={bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0,toJSON(){}},Fp=[0,0,0,0];function Xe(e){return e===void 0?0:e}function xo(e,t,r,n){return[e.left+Xe(t==null?void 0:t.x)+Xe(r==null?void 0:r.x)-Xe(n==null?void 0:n.x),e.top+Xe(t==null?void 0:t.y)+Xe(r==null?void 0:r.y)-Xe(n==null?void 0:n.y),e.left+e.width+Xe(t==null?void 0:t.x)+Xe(r==null?void 0:r.x)-Xe(n==null?void 0:n.x),e.top+e.height+Xe(t==null?void 0:t.y)+Xe(r==null?void 0:r.y)-Xe(n==null?void 0:n.y)]}function Wl(e,t,r,n){let i=xo(e,t,r,null);return n==="top"?(i[3]=i[1]+35,i):n==="right"?(i[0]=i[0]+e.width-35,i):n==="bottom"?(i[1]=i[1]+e.height-35,i):(i[2]=i[0]+35,i)}function So(e,t,r,n,i,a){return[e-Xe(i==null?void 0:i.x)-Xe(a==null?void 0:a.x),t-Xe(i==null?void 0:i.y)-Xe(a==null?void 0:a.y),r-Xe(i==null?void 0:i.x)-Xe(a==null?void 0:a.x),n-Xe(i==null?void 0:i.y)-Xe(a==null?void 0:a.y)]}var ox=e=>sx(e,(t,r)=>t{if(o.entityId===r)return 1/0;let s=o.getHitbox(),u=Op(s)[0],l=lx(t),c=o.getData().sortAxis==="horizontal"?"x":"y",d=l[c]>n[c]?1e3:0;return di(u,n)+d}),a=ox(i);return e[a]?e[a]:null}function jl(e){let{scrollLeft:t,scrollTop:r,scrollWidth:n,scrollHeight:i,offsetWidth:a,offsetHeight:o}=e,s=t,u=r,l=n-a,c=i-o;return{x:s,y:u,maxX:Math.max(l,0),maxY:Math.max(c,0)}}function Rp(e,t,r){let n=Math.trunc((r.x-t.x)*100)/100,i=Math.trunc((r.y-t.y)*100)/100;return[e[0]+n,e[1]+i,e[2]+n,e[3]+i]}function ql(e,t=[0,0,0,0]){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]+t[2],o=e[3]+t[3]-n;return{width:i-r,height:o}}var Yl=class{constructor(t,r,n,i,a,o,s,u,l,c){this.isVisible=!1;this.id=n,this.instanceId=Ae(),this.scopeId=r,this.entityId=`${r}-${n}`,this.dndManager=t,this.index=i,this.children=new Map,this.parent=a,this.scrollParent=o,this.getEntityData=c,this.sortManager=s,this.pollForNodes(u,l)}pollForNodes(t,r){!t()||!r()?this.dndManager.win.requestAnimationFrame(()=>this.pollForNodes(t,r)):this.initNodes(t(),r())}initNodes(t,r){var n,i;if(this.entityNode=t,this.measureNode=r,r.dataset.hitboxid=this.entityId,(n=this.sortManager)==null||n.registerSortable(this.entityId,this.getEntity(Pp),t,r),this.scrollParent)this.scrollParent.registerObserverHandler(this.entityId,r,a=>{var s,u;let o=Ze(a.target);if(a.isIntersecting){let l=this.getEntity(a.boundingClientRect);(s=this.parent)==null||s.children.set(this.entityId,{entity:l,manager:this}),this.dndManager.observeResize(r),(!this.parent||this.parent.isVisible)&&(this.dndManager.registerHitboxEntity(this.entityId,l,o),this.children.forEach((c,d)=>{this.dndManager.registerHitboxEntity(d,c.entity,o)}),this.setVisibility(!0))}else this.dndManager.unregisterHitboxEntity(this.entityId,o),this.children.forEach((l,c)=>{this.dndManager.unregisterHitboxEntity(c,o)}),(u=this.parent)==null||u.children.delete(this.entityId),this.dndManager.unobserveResize(r),this.setVisibility(!1)});else{let a=this.getEntity(r.getBoundingClientRect());this.dndManager.observeResize(r),this.dndManager.registerHitboxEntity(this.entityId,a,Ze(t)),(i=this.parent)==null||i.children.set(this.entityId,{entity:a,manager:this}),this.setVisibility(!0)}}setVisibility(t){this.isVisible=t,this.children.forEach(r=>{r.manager.setVisibility(t)})}destroy(){var t,r,n;this.dndManager.unobserveResize(this.measureNode),(t=this.sortManager)==null||t.unregisterSortable(this.entityId),(r=this.scrollParent)==null||r.unregisterObserverHandler(this.entityId,this.measureNode),this.entityNode&&this.dndManager.unregisterHitboxEntity(this.entityId,Ze(this.entityNode)),(n=this.parent)==null||n.children.delete(this.entityId)}getPath(){var t;return[...((t=this.parent)==null?void 0:t.getPath())||[],this.index]}getEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:this.entityId,initial:xo(t,((n=r.scrollParent)==null?void 0:n.scrollState)||on,((i=r.scrollParent)==null?void 0:i.getScrollShift())||Pn,null),getParentScrollState(){var a;return((a=r.scrollParent)==null?void 0:a.scrollState)||on},getParentScrollShift(){var a;return((a=r.scrollParent)==null?void 0:a.getScrollShift())||Pn},recalcInitial(){var a,o;this.initial=xo(r.measureNode.getBoundingClientRect(),((a=r.scrollParent)==null?void 0:a.scrollState)||on,((o=r.scrollParent)==null?void 0:o.getScrollShift())||Pn,null)},getHitbox(){return So(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath()},getData(){var a;return{...r.getEntityData(),sortAxis:(a=r.sortManager)==null?void 0:a.axis,win:Ze(r.measureNode)}}}}};var gr=P.memo(function({id:t,index:r,elementRef:n,measureRef:i,children:a,data:o}){let s=P.useContext(xt),u=P.useContext(Eo),l=P.useContext(mr),c=P.useContext(ko),d=P.useContext(sa),f=P.useRef(o),p=P.useRef();f.current=o;let g=P.useMemo(()=>{if(s){p.current&&p.current.destroy();let y=new Yl(s,l,t,r,c,d,u,()=>n.current,()=>i.current,()=>f.current);return p.current=y,y}return null},[t,r,s,l,c,d,u]);return P.useEffect(()=>()=>{var y;return(y=p.current)==null?void 0:y.destroy()},[]),g?h(ko.Provider,{value:g},a):null});function Wn(e){let t=P.useContext(ko),r=(t==null?void 0:t.getPath())||[];return e!==void 0&&r.push(e),P.useMemo(()=>r,r)}m();var Fu=me(Jh());m();m();m();m();var ym=me(vm()),{__extends:WM,__assign:zM,__rest:jM,__decorate:qM,__param:YM,__metadata:JM,__awaiter:Ei,__generator:ki,__exportStar:GM,__createBinding:QM,__values:XM,__read:ZM,__spread:bm,__spreadArrays:eI,__spreadArray:tI,__await:nI,__asyncGenerator:rI,__asyncDelegator:iI,__asyncValues:aI,__makeTemplateObject:oI,__importStar:sI,__importDefault:lI,__classPrivateFieldGet:cI,__classPrivateFieldSet:uI,__classPrivateFieldIn:dI}=ym.default;m();var _0=new Map([["avi","video/avi"],["gif","image/gif"],["ico","image/x-icon"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["mkv","video/x-matroska"],["mov","video/quicktime"],["mp4","video/mp4"],["pdf","application/pdf"],["png","image/png"],["zip","application/zip"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]]);function ma(e,t){var r=C0(e);if(typeof r.path!="string"){var n=e.webkitRelativePath;Object.defineProperty(r,"path",{value:typeof t=="string"?t:typeof n=="string"&&n.length>0?n:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function C0(e){var t=e.name,r=t&&t.lastIndexOf(".")!==-1;if(r&&!e.type){var n=t.split(".").pop().toLowerCase(),i=_0.get(n);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var D0=[".DS_Store","Thumbs.db"];function hc(e){return Ei(this,void 0,void 0,function(){return ki(this,function(t){return[2,T0(e)&&e.dataTransfer?A0(e.dataTransfer,e.type):M0(e)]})})}function T0(e){return!!e.dataTransfer}function M0(e){var t=I0(e.target)?e.target.files?mc(e.target.files):[]:[];return t.map(function(r){return ma(r)})}function I0(e){return e!==null}function A0(e,t){return Ei(this,void 0,void 0,function(){var r,n;return ki(this,function(i){switch(i.label){case 0:return e.items?(r=mc(e.items).filter(function(a){return a.kind==="file"}),t!=="drop"?[2,r]:[4,Promise.all(r.map(L0))]):[3,2];case 1:return n=i.sent(),[2,wm(Em(n))];case 2:return[2,wm(mc(e.files).map(function(a){return ma(a)}))]}})})}function wm(e){return e.filter(function(t){return D0.indexOf(t.name)===-1})}function mc(e){for(var t=[],r=0;r".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmaq \xFC\xE7\xFCn s\xFCr\xFC\u015Fd\xFCr\xFCn",toggleTitle:"A\xE7 / Ba\u011Fla",amPM:["G\u018F","GS"],time_24hr:!0};qm.l10ns.az=kc;var CI=qm.l10ns;m();var Ym=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},xc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0410\u045E","\u0421\u0440","\u0427\u0446","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u044F\u0434\u0437\u0435\u043B\u044F","\u041F\u0430\u043D\u044F\u0434\u0437\u0435\u043B\u0430\u043A","\u0410\u045E\u0442\u043E\u0440\u0430\u043A","\u0421\u0435\u0440\u0430\u0434\u0430","\u0427\u0430\u0446\u0432\u0435\u0440","\u041F\u044F\u0442\u043D\u0456\u0446\u0430","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0442\u0443","\u041B\u044E\u0442","\u0421\u0430\u043A","\u041A\u0440\u0430","\u0422\u0440\u0430","\u0427\u044D\u0440","\u041B\u0456\u043F","\u0416\u043D\u0456","\u0412\u0435\u0440","\u041A\u0430\u0441","\u041B\u0456\u0441","\u0421\u043D\u0435"],longhand:["\u0421\u0442\u0443\u0434\u0437\u0435\u043D\u044C","\u041B\u044E\u0442\u044B","\u0421\u0430\u043A\u0430\u0432\u0456\u043A","\u041A\u0440\u0430\u0441\u0430\u0432\u0456\u043A","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u044D\u0440\u0432\u0435\u043D\u044C","\u041B\u0456\u043F\u0435\u043D\u044C","\u0416\u043D\u0456\u0432\u0435\u043D\u044C","\u0412\u0435\u0440\u0430\u0441\u0435\u043D\u044C","\u041A\u0430\u0441\u0442\u0440\u044B\u0447\u043D\u0456\u043A","\u041B\u0456\u0441\u0442\u0430\u043F\u0430\u0434","\u0421\u043D\u0435\u0436\u0430\u043D\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0422\u044B\u0434.",scrollTitle:"\u041F\u0440\u0430\u043A\u0440\u0443\u0446\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0430\u0432\u0435\u043B\u0456\u0447\u044D\u043D\u043D\u044F",toggleTitle:"\u041D\u0430\u0446\u0456\u0441\u043D\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};Ym.l10ns.be=xc;var TI=Ym.l10ns;m();var Jm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Sc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0435\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u044F\u0434\u0430","\u0427\u0435\u0442\u0432\u044A\u0440\u0442\u044A\u043A","\u041F\u0435\u0442\u044A\u043A","\u0421\u044A\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0443","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},time_24hr:!0,firstDayOfWeek:1};Jm.l10ns.bg=Sc;var II=Jm.l10ns;m();var Gm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},_c={weekdays:{shorthand:["\u09B0\u09AC\u09BF","\u09B8\u09CB\u09AE","\u09AE\u0999\u09CD\u0997\u09B2","\u09AC\u09C1\u09A7","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF","\u09B6\u09C1\u0995\u09CD\u09B0","\u09B6\u09A8\u09BF"],longhand:["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]},months:{shorthand:["\u099C\u09BE\u09A8\u09C1","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7","\u0985\u0995\u09CD\u099F\u09CB","\u09A8\u09AD\u09C7","\u09A1\u09BF\u09B8\u09C7"],longhand:["\u099C\u09BE\u09A8\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997\u09B8\u09CD\u099F","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7\u09AE\u09CD\u09AC\u09B0","\u0985\u0995\u09CD\u099F\u09CB\u09AC\u09B0","\u09A8\u09AD\u09C7\u09AE\u09CD\u09AC\u09B0","\u09A1\u09BF\u09B8\u09C7\u09AE\u09CD\u09AC\u09B0"]}};Gm.l10ns.bn=_c;var LI=Gm.l10ns;m();var Qm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Cc={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Juni","Juli","Avgust","Septembar","Oktobar","Novembar","Decembar"]},time_24hr:!0};Qm.l10ns.bs=Cc;var FI=Qm.l10ns;m();var Dc=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Go={weekdays:{shorthand:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],longhand:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},months:{shorthand:["Gen","Febr","Mar\xE7","Abr","Maig","Juny","Jul","Ag","Set","Oct","Nov","Des"],longhand:["Gener","Febrer","Mar\xE7","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"]},ordinal:e=>{let t=e%100;if(t>3&&t<21)return"\xE8";switch(t%10){case 1:return"r";case 2:return"n";case 3:return"r";case 4:return"t";default:return"\xE8"}},firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};Dc.l10ns.cat=Dc.l10ns.ca=Go;var OI=Dc.l10ns;m();var Xm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Tc={weekdays:{shorthand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"],longhand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"]},months:{shorthand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"],longhand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"]},firstDayOfWeek:6,ordinal:()=>""};Xm.l10ns.ckb=Tc;var HI=Xm.l10ns;m();var Zm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Mc={weekdays:{shorthand:["Ne","Po","\xDAt","St","\u010Ct","P\xE1","So"],longhand:["Ned\u011Ble","Pond\u011Bl\xED","\xDAter\xFD","St\u0159eda","\u010Ctvrtek","P\xE1tek","Sobota"]},months:{shorthand:["Led","\xDAn","B\u0159e","Dub","Kv\u011B","\u010Cer","\u010Cvc","Srp","Z\xE1\u0159","\u0158\xEDj","Lis","Pro"],longhand:["Leden","\xDAnor","B\u0159ezen","Duben","Kv\u011Bten","\u010Cerven","\u010Cervenec","Srpen","Z\xE1\u0159\xED","\u0158\xEDjen","Listopad","Prosinec"]},firstDayOfWeek:1,ordinal:function(){return"."},rangeSeparator:" do ",weekAbbreviation:"T\xFDd.",scrollTitle:"Rolujte pro zm\u011Bnu",toggleTitle:"P\u0159epnout dopoledne/odpoledne",amPM:["dop.","odp."],yearAriaLabel:"Rok",time_24hr:!0};Zm.l10ns.cs=Mc;var KI=Zm.l10ns;m();var eg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ic={weekdays:{shorthand:["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],longhand:["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"]},months:{shorthand:["Ion","Chwef","Maw","Ebr","Mai","Meh","Gorff","Awst","Medi","Hyd","Tach","Rhag"],longhand:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"]},firstDayOfWeek:1,ordinal:e=>e===1?"af":e===2?"ail":e===3||e===4?"ydd":e===5||e===6?"ed":e>=7&&e<=10||e==12||e==15||e==18||e==20?"fed":e==11||e==13||e==14||e==16||e==17||e==19?"eg":e>=21&&e<=39?"ain":"",time_24hr:!0};eg.l10ns.cy=Ic;var UI=eg.l10ns;m();var tg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ac={weekdays:{shorthand:["s\xF8n","man","tir","ons","tors","fre","l\xF8r"],longhand:["s\xF8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\xF8rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"uge",time_24hr:!0};tg.l10ns.da=Ac;var WI=tg.l10ns;m();var ng=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Lc={weekdays:{shorthand:["So","Mo","Di","Mi","Do","Fr","Sa"],longhand:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},months:{shorthand:["Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],longhand:["Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},firstDayOfWeek:1,weekAbbreviation:"KW",rangeSeparator:" bis ",scrollTitle:"Zum \xC4ndern scrollen",toggleTitle:"Zum Umschalten klicken",time_24hr:!0};ng.l10ns.de=Lc;var jI=ng.l10ns;m();var Ur={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:e=>{let t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Qo=Ur;m();var rg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Pc={firstDayOfWeek:1,rangeSeparator:" \u011Dis ",weekAbbreviation:"Sem",scrollTitle:"Rulumu por pligrandigi la valoron",toggleTitle:"Klaku por \u015Dalti",weekdays:{shorthand:["Dim","Lun","Mar","Mer","\u0134a\u016D","Ven","Sab"],longhand:["diman\u0109o","lundo","mardo","merkredo","\u0135a\u016Ddo","vendredo","sabato"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","A\u016Dg","Sep","Okt","Nov","Dec"],longhand:["januaro","februaro","marto","aprilo","majo","junio","julio","a\u016Dgusto","septembro","oktobro","novembro","decembro"]},ordinal:()=>"-a",time_24hr:!0};rg.l10ns.eo=Pc;var JI=rg.l10ns;m();var ig=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Fc={weekdays:{shorthand:["Dom","Lun","Mar","Mi\xE9","Jue","Vie","S\xE1b"],longhand:["Domingo","Lunes","Martes","Mi\xE9rcoles","Jueves","Viernes","S\xE1bado"]},months:{shorthand:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],longhand:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]},ordinal:()=>"\xBA",firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};ig.l10ns.es=Fc;var QI=ig.l10ns;m();var ag=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Nc={weekdays:{shorthand:["P","E","T","K","N","R","L"],longhand:["P\xFChap\xE4ev","Esmasp\xE4ev","Teisip\xE4ev","Kolmap\xE4ev","Neljap\xE4ev","Reede","Laup\xE4ev"]},months:{shorthand:["Jaan","Veebr","M\xE4rts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],longhand:["Jaanuar","Veebruar","M\xE4rts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"]},firstDayOfWeek:1,ordinal:function(){return"."},weekAbbreviation:"N\xE4d",rangeSeparator:" kuni ",scrollTitle:"Keri, et suurendada",toggleTitle:"Kl\xF5psa, et vahetada",time_24hr:!0};ag.l10ns.et=Nc;var ZI=ag.l10ns;m();var og=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Oc={weekdays:{shorthand:["\u06CC\u06A9","\u062F\u0648","\u0633\u0647","\u0686\u0647\u0627\u0631","\u067E\u0646\u062C","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"],longhand:["\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647","\u062F\u0648\u0634\u0646\u0628\u0647","\u0633\u0647\u200C\u0634\u0646\u0628\u0647","\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647","\u067E\u0646\u0686\u200C\u0634\u0646\u0628\u0647","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"]},months:{shorthand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"],longhand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"]},firstDayOfWeek:6,ordinal:()=>""};og.l10ns.fa=Oc;var tA=og.l10ns;m();var sg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Rc={firstDayOfWeek:1,weekdays:{shorthand:["su","ma","ti","ke","to","pe","la"],longhand:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},months:{shorthand:["tammi","helmi","maalis","huhti","touko","kes\xE4","hein\xE4","elo","syys","loka","marras","joulu"],longhand:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kes\xE4kuu","hein\xE4kuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"]},ordinal:()=>".",time_24hr:!0};sg.l10ns.fi=Rc;var rA=sg.l10ns;m();var lg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Hc={weekdays:{shorthand:["Sun","M\xE1n","T\xFDs","Mik","H\xF3s","Fr\xED","Ley"],longhand:["Sunnudagur","M\xE1nadagur","T\xFDsdagur","Mikudagur","H\xF3sdagur","Fr\xEDggjadagur","Leygardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","Apr\xEDl","Mai","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",scrollTitle:"Rulla fyri at broyta",toggleTitle:"Tr\xFDst fyri at skifta",yearAriaLabel:"\xC1r",time_24hr:!0};lg.l10ns.fo=Hc;var aA=lg.l10ns;m();var cg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Bc={firstDayOfWeek:1,weekdays:{shorthand:["dim","lun","mar","mer","jeu","ven","sam"],longhand:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},months:{shorthand:["janv","f\xE9vr","mars","avr","mai","juin","juil","ao\xFBt","sept","oct","nov","d\xE9c"],longhand:["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"]},ordinal:e=>e>1?"":"er",rangeSeparator:" au ",weekAbbreviation:"Sem",scrollTitle:"D\xE9filer pour augmenter la valeur",toggleTitle:"Cliquer pour basculer",time_24hr:!0};cg.l10ns.fr=Bc;var sA=cg.l10ns;m();var ug=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Kc={weekdays:{shorthand:["\u039A\u03C5","\u0394\u03B5","\u03A4\u03C1","\u03A4\u03B5","\u03A0\u03AD","\u03A0\u03B1","\u03A3\u03AC"],longhand:["\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE","\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1","\u03A4\u03C1\u03AF\u03C4\u03B7","\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7","\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7","\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE","\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF"]},months:{shorthand:["\u0399\u03B1\u03BD","\u03A6\u03B5\u03B2","\u039C\u03AC\u03C1","\u0391\u03C0\u03C1","\u039C\u03AC\u03B9","\u0399\u03BF\u03CD\u03BD","\u0399\u03BF\u03CD\u03BB","\u0391\u03CD\u03B3","\u03A3\u03B5\u03C0","\u039F\u03BA\u03C4","\u039D\u03BF\u03AD","\u0394\u03B5\u03BA"],longhand:["\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2","\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2","\u039C\u03AC\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2","\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2","\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2","\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2"]},firstDayOfWeek:1,ordinal:function(){return""},weekAbbreviation:"\u0395\u03B2\u03B4",rangeSeparator:" \u03AD\u03C9\u03C2 ",scrollTitle:"\u039C\u03B5\u03C4\u03B1\u03BA\u03C5\u03BB\u03AE\u03C3\u03C4\u03B5 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B1\u03CD\u03BE\u03B7\u03C3\u03B7",toggleTitle:"\u039A\u03AC\u03BD\u03C4\u03B5 \u03BA\u03BB\u03B9\u03BA \u03B3\u03B9\u03B1 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AE",amPM:["\u03A0\u039C","\u039C\u039C"],yearAriaLabel:"\u03C7\u03C1\u03CC\u03BD\u03BF\u03C2",monthAriaLabel:"\u03BC\u03AE\u03BD\u03B1\u03C2",hourAriaLabel:"\u03CE\u03C1\u03B1",minuteAriaLabel:"\u03BB\u03B5\u03C0\u03C4\u03CC"};ug.l10ns.gr=Kc;var cA=ug.l10ns;m();var dg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},$c={weekdays:{shorthand:["\u05D0","\u05D1","\u05D2","\u05D3","\u05D4","\u05D5","\u05E9"],longhand:["\u05E8\u05D0\u05E9\u05D5\u05DF","\u05E9\u05E0\u05D9","\u05E9\u05DC\u05D9\u05E9\u05D9","\u05E8\u05D1\u05D9\u05E2\u05D9","\u05D7\u05DE\u05D9\u05E9\u05D9","\u05E9\u05D9\u05E9\u05D9","\u05E9\u05D1\u05EA"]},months:{shorthand:["\u05D9\u05E0\u05D5\u05F3","\u05E4\u05D1\u05E8\u05F3","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05F3","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05F3","\u05E1\u05E4\u05D8\u05F3","\u05D0\u05D5\u05E7\u05F3","\u05E0\u05D5\u05D1\u05F3","\u05D3\u05E6\u05DE\u05F3"],longhand:["\u05D9\u05E0\u05D5\u05D0\u05E8","\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05D9\u05DC","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8","\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8","\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8","\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8","\u05D3\u05E6\u05DE\u05D1\u05E8"]},rangeSeparator:" \u05D0\u05DC ",time_24hr:!0};dg.l10ns.he=$c;var dA=dg.l10ns;m();var fg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Uc={weekdays:{shorthand:["\u0930\u0935\u093F","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],longhand:["\u0930\u0935\u093F\u0935\u093E\u0930","\u0938\u094B\u092E\u0935\u093E\u0930","\u092E\u0902\u0917\u0932\u0935\u093E\u0930","\u092C\u0941\u0927\u0935\u093E\u0930","\u0917\u0941\u0930\u0941\u0935\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930","\u0936\u0928\u093F\u0935\u093E\u0930"]},months:{shorthand:["\u091C\u0928","\u092B\u0930","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917","\u0938\u093F\u0924","\u0905\u0915\u094D\u091F","\u0928\u0935","\u0926\u093F"],longhand:["\u091C\u0928\u0935\u0930\u0940 ","\u092B\u0930\u0935\u0930\u0940","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917\u0938\u094D\u0924 ","\u0938\u093F\u0924\u092E\u094D\u092C\u0930","\u0905\u0915\u094D\u091F\u0942\u092C\u0930","\u0928\u0935\u092E\u094D\u092C\u0930","\u0926\u093F\u0938\u092E\u094D\u092C\u0930"]}};fg.l10ns.hi=Uc;var pA=fg.l10ns;m();var pg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Vc={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Sij","Velj","O\u017Eu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],longhand:["Sije\u010Danj","Velja\u010Da","O\u017Eujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"]},time_24hr:!0};pg.l10ns.hr=Vc;var mA=pg.l10ns;m();var hg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Wc={firstDayOfWeek:1,weekdays:{shorthand:["V","H","K","Sz","Cs","P","Szo"],longhand:["Vas\xE1rnap","H\xE9tf\u0151","Kedd","Szerda","Cs\xFCt\xF6rt\xF6k","P\xE9ntek","Szombat"]},months:{shorthand:["Jan","Feb","M\xE1r","\xC1pr","M\xE1j","J\xFAn","J\xFAl","Aug","Szep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","M\xE1rcius","\xC1prilis","M\xE1jus","J\xFAnius","J\xFAlius","Augusztus","Szeptember","Okt\xF3ber","November","December"]},ordinal:function(){return"."},weekAbbreviation:"H\xE9t",scrollTitle:"G\xF6rgessen",toggleTitle:"Kattintson a v\xE1lt\xE1shoz",rangeSeparator:" - ",time_24hr:!0};hg.l10ns.hu=Wc;var vA=hg.l10ns;m();var mg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},zc={weekdays:{shorthand:["\u053F\u056B\u0580","\u0535\u0580\u056F","\u0535\u0580\u0584","\u0549\u0580\u0584","\u0540\u0576\u0563","\u0548\u0582\u0580\u0562","\u0547\u0562\u0569"],longhand:["\u053F\u056B\u0580\u0561\u056F\u056B","\u0535\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B","\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0540\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B","\u0548\u0582\u0580\u0562\u0561\u0569","\u0547\u0561\u0562\u0561\u0569"]},months:{shorthand:["\u0540\u0576\u057E","\u0553\u057F\u0580","\u0544\u0561\u0580","\u0531\u057A\u0580","\u0544\u0561\u0575","\u0540\u0576\u057D","\u0540\u056C\u057D","\u0555\u0563\u057D","\u054D\u0565\u057A","\u0540\u0578\u056F","\u0546\u0574\u0562","\u0534\u0565\u056F"],longhand:["\u0540\u0578\u0582\u0576\u057E\u0561\u0580","\u0553\u0565\u057F\u0580\u057E\u0561\u0580","\u0544\u0561\u0580\u057F","\u0531\u057A\u0580\u056B\u056C","\u0544\u0561\u0575\u056B\u057D","\u0540\u0578\u0582\u0576\u056B\u057D","\u0540\u0578\u0582\u056C\u056B\u057D","\u0555\u0563\u0578\u057D\u057F\u0578\u057D","\u054D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580","\u0540\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580","\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580","\u0534\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0547\u0532\u054F",scrollTitle:"\u0548\u056C\u0578\u0580\u0565\u0584\u055D \u0574\u0565\u056E\u0561\u0581\u0576\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",toggleTitle:"\u054D\u0565\u0572\u0574\u0565\u0584\u055D \u0583\u0578\u056D\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",amPM:["\u0544\u053F","\u053F\u0540"],yearAriaLabel:"\u054F\u0561\u0580\u056B",monthAriaLabel:"\u0531\u0574\u056B\u057D",hourAriaLabel:"\u053A\u0561\u0574",minuteAriaLabel:"\u0550\u0578\u057A\u0565",time_24hr:!0};mg.l10ns.hy=zc;var bA=mg.l10ns;m();var gg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},jc={weekdays:{shorthand:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],longhand:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],longhand:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0,rangeSeparator:" - "};gg.l10ns.id=jc;var EA=gg.l10ns;m();var vg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},qc={weekdays:{shorthand:["Sun","M\xE1n","\xDEri","Mi\xF0","Fim","F\xF6s","Lau"],longhand:["Sunnudagur","M\xE1nudagur","\xDEri\xF0judagur","Mi\xF0vikudagur","Fimmtudagur","F\xF6studagur","Laugardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Ma\xED","J\xFAn","J\xFAl","\xC1g\xFA","Sep","Okt","N\xF3v","Des"],longhand:["Jan\xFAar","Febr\xFAar","Mars","Apr\xEDl","Ma\xED","J\xFAn\xED","J\xFAl\xED","\xC1g\xFAst","September","Okt\xF3ber","N\xF3vember","Desember"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",yearAriaLabel:"\xC1r",time_24hr:!0};vg.l10ns.is=qc;var xA=vg.l10ns;m();var yg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Yc={weekdays:{shorthand:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],longhand:["Domenica","Luned\xEC","Marted\xEC","Mercoled\xEC","Gioved\xEC","Venerd\xEC","Sabato"]},months:{shorthand:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],longhand:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"]},firstDayOfWeek:1,ordinal:()=>"\xB0",rangeSeparator:" al ",weekAbbreviation:"Se",scrollTitle:"Scrolla per aumentare",toggleTitle:"Clicca per cambiare",time_24hr:!0};yg.l10ns.it=Yc;var _A=yg.l10ns;m();var bg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Jc={weekdays:{shorthand:["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"],longhand:["\u65E5\u66DC\u65E5","\u6708\u66DC\u65E5","\u706B\u66DC\u65E5","\u6C34\u66DC\u65E5","\u6728\u66DC\u65E5","\u91D1\u66DC\u65E5","\u571F\u66DC\u65E5"]},months:{shorthand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],longhand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"]},time_24hr:!0,rangeSeparator:" \u304B\u3089 ",monthAriaLabel:"\u6708",amPM:["\u5348\u524D","\u5348\u5F8C"],yearAriaLabel:"\u5E74",hourAriaLabel:"\u6642\u9593",minuteAriaLabel:"\u5206"};bg.l10ns.ja=Jc;var DA=bg.l10ns;m();var wg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Gc={weekdays:{shorthand:["\u10D9\u10D5","\u10DD\u10E0","\u10E1\u10D0","\u10DD\u10D7","\u10EE\u10E3","\u10DE\u10D0","\u10E8\u10D0"],longhand:["\u10D9\u10D5\u10D8\u10E0\u10D0","\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8","\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8"]},months:{shorthand:["\u10D8\u10D0\u10DC","\u10D7\u10D4\u10D1","\u10DB\u10D0\u10E0","\u10D0\u10DE\u10E0","\u10DB\u10D0\u10D8","\u10D8\u10D5\u10DC","\u10D8\u10D5\u10DA","\u10D0\u10D2\u10D5","\u10E1\u10D4\u10E5","\u10DD\u10E5\u10E2","\u10DC\u10DD\u10D4","\u10D3\u10D4\u10D9"],longhand:["\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8","\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8","\u10DB\u10D0\u10E0\u10E2\u10D8","\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8","\u10DB\u10D0\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8","\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD","\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u10D9\u10D5.",scrollTitle:"\u10D3\u10D0\u10E1\u10E5\u10E0\u10DD\u10DA\u10D4\u10D7 \u10D2\u10D0\u10E1\u10D0\u10D3\u10D8\u10D3\u10D4\u10D1\u10DA\u10D0\u10D3",toggleTitle:"\u10D3\u10D0\u10D0\u10D9\u10DA\u10D8\u10D9\u10D4\u10D7 \u10D2\u10D0\u10D3\u10D0\u10E0\u10D7\u10D5\u10D8\u10E1\u10D7\u10D5\u10D8\u10E1",amPM:["AM","PM"],yearAriaLabel:"\u10EC\u10D4\u10DA\u10D8",time_24hr:!0};wg.l10ns.ka=Gc;var MA=wg.l10ns;m();var Eg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Qc={weekdays:{shorthand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F.","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"],longhand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F\u17D2\u1794\u178F\u17B7\u17CD","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"]},months:{shorthand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"],longhand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"]},ordinal:()=>"",firstDayOfWeek:1,rangeSeparator:" \u178A\u179B\u17CB ",weekAbbreviation:"\u179F\u1794\u17D2\u178F\u17B6\u17A0\u17CD",scrollTitle:"\u179A\u17C6\u1780\u17B7\u179B\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1794\u1784\u17D2\u1780\u17BE\u1793",toggleTitle:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1795\u17D2\u179B\u17B6\u179F\u17CB\u1794\u17D2\u178A\u17BC\u179A",yearAriaLabel:"\u1786\u17D2\u1793\u17B6\u17C6",time_24hr:!0};Eg.l10ns.km=Qc;var AA=Eg.l10ns;m();var kg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Xc={weekdays:{shorthand:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],longhand:["\uC77C\uC694\uC77C","\uC6D4\uC694\uC77C","\uD654\uC694\uC77C","\uC218\uC694\uC77C","\uBAA9\uC694\uC77C","\uAE08\uC694\uC77C","\uD1A0\uC694\uC77C"]},months:{shorthand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"],longhand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"]},ordinal:()=>"\uC77C",rangeSeparator:" ~ ",amPM:["\uC624\uC804","\uC624\uD6C4"]};kg.l10ns.ko=Xc;var PA=kg.l10ns;m();var xg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Zc={weekdays:{shorthand:["\u0416\u0441","\u0414\u0441","\u0421c","\u0421\u0440","\u0411\u0441","\u0416\u043C","\u0421\u0431"],longhand:["\u0416\u0435\u043A\u0441\u0435\u043D\u0431i","\u0414\u04AF\u0439\u0441\u0435\u043D\u0431i","\u0421\u0435\u0439\u0441\u0435\u043D\u0431i","\u0421\u04D9\u0440\u0441\u0435\u043D\u0431i","\u0411\u0435\u0439\u0441\u0435\u043D\u0431i","\u0416\u04B1\u043C\u0430","\u0421\u0435\u043D\u0431i"]},months:{shorthand:["\u049A\u0430\u04A3","\u0410\u049B\u043F","\u041D\u0430\u0443","\u0421\u04D9\u0443","\u041C\u0430\u043C","\u041C\u0430\u0443","\u0428i\u043B","\u0422\u0430\u043C","\u049A\u044B\u0440","\u049A\u0430\u0437","\u049A\u0430\u0440","\u0416\u0435\u043B"],longhand:["\u049A\u0430\u04A3\u0442\u0430\u0440","\u0410\u049B\u043F\u0430\u043D","\u041D\u0430\u0443\u0440\u044B\u0437","\u0421\u04D9\u0443i\u0440","\u041C\u0430\u043C\u044B\u0440","\u041C\u0430\u0443\u0441\u044B\u043C","\u0428i\u043B\u0434\u0435","\u0422\u0430\u043C\u044B\u0437","\u049A\u044B\u0440\u043A\u04AF\u0439\u0435\u043A","\u049A\u0430\u0437\u0430\u043D","\u049A\u0430\u0440\u0430\u0448\u0430","\u0416\u0435\u043B\u0442\u043E\u049B\u0441\u0430\u043D"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0410\u043F\u0442\u0430",scrollTitle:"\u04AE\u043B\u043A\u0435\u0439\u0442\u0443 \u04AF\u0448\u0456\u043D \u0430\u0439\u043D\u0430\u043B\u0434\u044B\u0440\u044B\u04A3\u044B\u0437",toggleTitle:"\u0410\u0443\u044B\u0441\u0442\u044B\u0440\u0443 \u04AF\u0448\u0456\u043D \u0431\u0430\u0441\u044B\u04A3\u044B\u0437",amPM:["\u0422\u0414","\u0422\u041A"],yearAriaLabel:"\u0416\u044B\u043B"};xg.l10ns.kz=Zc;var NA=xg.l10ns;m();var Sg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},eu={weekdays:{shorthand:["S","Pr","A","T","K","Pn","\u0160"],longhand:["Sekmadienis","Pirmadienis","Antradienis","Tre\u010Diadienis","Ketvirtadienis","Penktadienis","\u0160e\u0161tadienis"]},months:{shorthand:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd"],longhand:["Sausis","Vasaris","Kovas","Balandis","Gegu\u017E\u0117","Bir\u017Eelis","Liepa","Rugpju\u0304tis","Rugse\u0307jis","Spalis","Lapkritis","Gruodis"]},firstDayOfWeek:1,ordinal:function(){return"-a"},rangeSeparator:" iki ",weekAbbreviation:"Sav",scrollTitle:"Keisti laik\u0105 pel\u0117s rateliu",toggleTitle:"Perjungti laiko format\u0105",time_24hr:!0};Sg.l10ns.lt=eu;var RA=Sg.l10ns;m();var _g=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},tu={firstDayOfWeek:1,weekdays:{shorthand:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],longhand:["Sv\u0113tdiena","Pirmdiena","Otrdiena","Tre\u0161diena","Ceturtdiena","Piektdiena","Sestdiena"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","J\u016Bn","J\u016Bl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janv\u0101ris","Febru\u0101ris","Marts","Apr\u012Blis","Maijs","J\u016Bnijs","J\u016Blijs","Augusts","Septembris","Oktobris","Novembris","Decembris"]},rangeSeparator:" l\u012Bdz ",time_24hr:!0};_g.l10ns.lv=tu;var BA=_g.l10ns;m();var Cg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},nu={weekdays:{shorthand:["\u041D\u0435","\u041F\u043E","\u0412\u0442","\u0421\u0440","\u0427\u0435","\u041F\u0435","\u0421\u0430"],longhand:["\u041D\u0435\u0434\u0435\u043B\u0430","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u043E\u043A","\u041F\u0435\u0442\u043E\u043A","\u0421\u0430\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0408\u0430\u043D","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0458","\u0408\u0443\u043D","\u0408\u0443\u043B","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u0408\u0430\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0458","\u0408\u0443\u043D\u0438","\u0408\u0443\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},firstDayOfWeek:1,weekAbbreviation:"\u041D\u0435\u0434.",rangeSeparator:" \u0434\u043E ",time_24hr:!0};Cg.l10ns.mk=nu;var $A=Cg.l10ns;m();var Dg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ru={firstDayOfWeek:1,weekdays:{shorthand:["\u0414\u0430","\u041C\u044F","\u041B\u0445","\u041F\u04AF","\u0411\u0430","\u0411\u044F","\u041D\u044F"],longhand:["\u0414\u0430\u0432\u0430\u0430","\u041C\u044F\u0433\u043C\u0430\u0440","\u041B\u0445\u0430\u0433\u0432\u0430","\u041F\u04AF\u0440\u044D\u0432","\u0411\u0430\u0430\u0441\u0430\u043D","\u0411\u044F\u043C\u0431\u0430","\u041D\u044F\u043C"]},months:{shorthand:["1-\u0440 \u0441\u0430\u0440","2-\u0440 \u0441\u0430\u0440","3-\u0440 \u0441\u0430\u0440","4-\u0440 \u0441\u0430\u0440","5-\u0440 \u0441\u0430\u0440","6-\u0440 \u0441\u0430\u0440","7-\u0440 \u0441\u0430\u0440","8-\u0440 \u0441\u0430\u0440","9-\u0440 \u0441\u0430\u0440","10-\u0440 \u0441\u0430\u0440","11-\u0440 \u0441\u0430\u0440","12-\u0440 \u0441\u0430\u0440"],longhand:["\u041D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0425\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u04E9\u0440\u04E9\u0432\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0417\u0443\u0440\u0433\u0430\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u043E\u043B\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u041D\u0430\u0439\u043C\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0415\u0441\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u043D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u0445\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440"]},rangeSeparator:"-\u0441 ",time_24hr:!0};Dg.l10ns.mn=ru;var VA=Dg.l10ns;m();var nS=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Tg={weekdays:{shorthand:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],longhand:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"]},months:{shorthand:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],longhand:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"]},firstDayOfWeek:1,ordinal:()=>""},zA=nS.l10ns;m();var Mg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},iu={weekdays:{shorthand:["\u1014\u103D\u1031","\u101C\u102C","\u1002\u102B","\u101F\u1030\u1038","\u1000\u103C\u102C","\u101E\u1031\u102C","\u1014\u1031"],longhand:["\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031","\u1010\u1014\u1004\u103A\u1039\u101C\u102C","\u1021\u1004\u103A\u1039\u1002\u102B","\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038","\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038","\u101E\u1031\u102C\u1000\u103C\u102C","\u1005\u1014\u1031"]},months:{shorthand:["\u1007\u1014\u103A","\u1016\u1031","\u1019\u1010\u103A","\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u101C\u102D\u102F\u1004\u103A","\u101E\u103C","\u1005\u1000\u103A","\u1021\u1031\u102C\u1000\u103A","\u1014\u102D\u102F","\u1012\u102E"],longhand:["\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E","\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E","\u1019\u1010\u103A","\u1027\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u1007\u1030\u101C\u102D\u102F\u1004\u103A","\u101E\u103C\u1002\u102F\u1010\u103A","\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C","\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C","\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C","\u1012\u102E\u1007\u1004\u103A\u1018\u102C"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0};Mg.l10ns.my=iu;var qA=Mg.l10ns;m();var Ig=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},au={weekdays:{shorthand:["zo","ma","di","wo","do","vr","za"],longhand:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},months:{shorthand:["jan","feb","mrt","apr","mei","jun","jul","aug","sept","okt","nov","dec"],longhand:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},firstDayOfWeek:1,weekAbbreviation:"wk",rangeSeparator:" t/m ",scrollTitle:"Scroll voor volgende / vorige",toggleTitle:"Klik om te wisselen",time_24hr:!0,ordinal:e=>e===1||e===8||e>=20?"ste":"de"};Ig.l10ns.nl=au;var JA=Ig.l10ns;m();var Ag=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ou={weekdays:{shorthand:["S\xF8.","M\xE5.","Ty.","On.","To.","Fr.","La."],longhand:["S\xF8ndag","M\xE5ndag","Tysdag","Onsdag","Torsdag","Fredag","Laurdag"]},months:{shorthand:["Jan","Feb","Mars","Apr","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Veke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};Ag.l10ns.nn=ou;var QA=Ag.l10ns;m();var Lg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},su={weekdays:{shorthand:["S\xF8n","Man","Tir","Ons","Tor","Fre","L\xF8r"],longhand:["S\xF8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\xF8rdag"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Uke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};Lg.l10ns.no=su;var ZA=Lg.l10ns;m();var Pg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},lu={weekdays:{shorthand:["\u0A10\u0A24","\u0A38\u0A4B\u0A2E","\u0A2E\u0A70\u0A17\u0A32","\u0A2C\u0A41\u0A71\u0A27","\u0A35\u0A40\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30"],longhand:["\u0A10\u0A24\u0A35\u0A3E\u0A30","\u0A38\u0A4B\u0A2E\u0A35\u0A3E\u0A30","\u0A2E\u0A70\u0A17\u0A32\u0A35\u0A3E\u0A30","\u0A2C\u0A41\u0A71\u0A27\u0A35\u0A3E\u0A30","\u0A35\u0A40\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30\u0A35\u0A3E\u0A30"]},months:{shorthand:["\u0A1C\u0A28","\u0A2B\u0A3C\u0A30","\u0A2E\u0A3E\u0A30","\u0A05\u0A2A\u0A4D\u0A30\u0A48","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E","\u0A05\u0A17","\u0A38\u0A24\u0A70","\u0A05\u0A15","\u0A28\u0A35\u0A70","\u0A26\u0A38\u0A70"],longhand:["\u0A1C\u0A28\u0A35\u0A30\u0A40","\u0A2B\u0A3C\u0A30\u0A35\u0A30\u0A40","\u0A2E\u0A3E\u0A30\u0A1A","\u0A05\u0A2A\u0A4D\u0A30\u0A48\u0A32","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E\u0A08","\u0A05\u0A17\u0A38\u0A24","\u0A38\u0A24\u0A70\u0A2C\u0A30","\u0A05\u0A15\u0A24\u0A42\u0A2C\u0A30","\u0A28\u0A35\u0A70\u0A2C\u0A30","\u0A26\u0A38\u0A70\u0A2C\u0A30"]},time_24hr:!0};Pg.l10ns.pa=lu;var tL=Pg.l10ns;m();var Fg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},cu={weekdays:{shorthand:["Nd","Pn","Wt","\u015Ar","Cz","Pt","So"],longhand:["Niedziela","Poniedzia\u0142ek","Wtorek","\u015Aroda","Czwartek","Pi\u0105tek","Sobota"]},months:{shorthand:["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Pa\u017A","Lis","Gru"],longhand:["Stycze\u0144","Luty","Marzec","Kwiecie\u0144","Maj","Czerwiec","Lipiec","Sierpie\u0144","Wrzesie\u0144","Pa\u017Adziernik","Listopad","Grudzie\u0144"]},rangeSeparator:" do ",weekAbbreviation:"tydz.",scrollTitle:"Przewi\u0144, aby zwi\u0119kszy\u0107",toggleTitle:"Kliknij, aby prze\u0142\u0105czy\u0107",firstDayOfWeek:1,time_24hr:!0,ordinal:()=>"."};Fg.l10ns.pl=cu;var rL=Fg.l10ns;m();var Ng=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},uu={weekdays:{shorthand:["Dom","Seg","Ter","Qua","Qui","Sex","S\xE1b"],longhand:["Domingo","Segunda-feira","Ter\xE7a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S\xE1bado"]},months:{shorthand:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],longhand:["Janeiro","Fevereiro","Mar\xE7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]},rangeSeparator:" at\xE9 ",time_24hr:!0};Ng.l10ns.pt=uu;var aL=Ng.l10ns;m();var Og=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},du={weekdays:{shorthand:["Dum","Lun","Mar","Mie","Joi","Vin","S\xE2m"],longhand:["Duminic\u0103","Luni","Mar\u021Bi","Miercuri","Joi","Vineri","S\xE2mb\u0103t\u0103"]},months:{shorthand:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec"],longhand:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"]},firstDayOfWeek:1,time_24hr:!0,ordinal:()=>""};Og.l10ns.ro=du;var sL=Og.l10ns;m();var Rg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},fu={weekdays:{shorthand:["\u0412\u0441","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440\u0433","\u041F\u044F\u0442\u043D\u0438\u0446\u0430","\u0421\u0443\u0431\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440\u044C","\u0424\u0435\u0432\u0440\u0430\u043B\u044C","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B\u044C","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C","\u041E\u043A\u0442\u044F\u0431\u0440\u044C","\u041D\u043E\u044F\u0431\u0440\u044C","\u0414\u0435\u043A\u0430\u0431\u0440\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u041D\u0435\u0434.",scrollTitle:"\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0435 \u0434\u043B\u044F \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u044F",toggleTitle:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};Rg.l10ns.ru=fu;var cL=Rg.l10ns;m();var Hg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},pu={weekdays:{shorthand:["\u0D89","\u0DC3","\u0D85","\u0DB6","\u0DB6\u0DCA\u200D\u0DBB","\u0DC3\u0DD2","\u0DC3\u0DD9"],longhand:["\u0D89\u0DBB\u0DD2\u0DAF\u0DCF","\u0DC3\u0DB3\u0DD4\u0DAF\u0DCF","\u0D85\u0D9F\u0DC4\u0DBB\u0DD4\u0DC0\u0DCF\u0DAF\u0DCF","\u0DB6\u0DAF\u0DCF\u0DAF\u0DCF","\u0DB6\u0DCA\u200D\u0DBB\u0DC4\u0DC3\u0DCA\u0DB4\u0DAD\u0DD2\u0DB1\u0DCA\u0DAF\u0DCF","\u0DC3\u0DD2\u0D9A\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF","\u0DC3\u0DD9\u0DB1\u0DC3\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF"]},months:{shorthand:["\u0DA2\u0DB1","\u0DB4\u0DD9\u0DB6","\u0DB8\u0DCF\u0DBB\u0DCA","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD","\u0DC3\u0DD0\u0DB4\u0DCA","\u0D94\u0D9A\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0","\u0DAF\u0DD9\u0DC3\u0DD0"],longhand:["\u0DA2\u0DB1\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB4\u0DD9\u0DB6\u0DBB\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB8\u0DCF\u0DBB\u0DCA\u0DAD\u0DD4","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA\u0DBD\u0DCA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD\u0DC3\u0DCA\u0DAD\u0DD4","\u0DC3\u0DD0\u0DB4\u0DCA\u0DAD\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0D94\u0D9A\u0DCA\u0DAD\u0DDD\u0DB6\u0DBB\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0DAF\u0DD9\u0DC3\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA"]},time_24hr:!0};Hg.l10ns.si=pu;var dL=Hg.l10ns;m();var Bg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},hu={weekdays:{shorthand:["Ned","Pon","Ut","Str","\u0160tv","Pia","Sob"],longhand:["Nede\u013Ea","Pondelok","Utorok","Streda","\u0160tvrtok","Piatok","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","M\xE1j","J\xFAn","J\xFAl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","Marec","Apr\xEDl","M\xE1j","J\xFAn","J\xFAl","August","September","Okt\xF3ber","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};Bg.l10ns.sk=hu;var pL=Bg.l10ns;m();var Kg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},mu={weekdays:{shorthand:["Ned","Pon","Tor","Sre","\u010Cet","Pet","Sob"],longhand:["Nedelja","Ponedeljek","Torek","Sreda","\u010Cetrtek","Petek","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};Kg.l10ns.sl=mu;var mL=Kg.l10ns;m();var $g=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},gu={weekdays:{shorthand:["Di","H\xEB","Ma","M\xEB","En","Pr","Sh"],longhand:["E Diel","E H\xEBn\xEB","E Mart\xEB","E M\xEBrkur\xEB","E Enjte","E Premte","E Shtun\xEB"]},months:{shorthand:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","N\xEBn","Dhj"],longhand:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","N\xEBntor","Dhjetor"]},firstDayOfWeek:1,rangeSeparator:" deri ",weekAbbreviation:"Java",yearAriaLabel:"Viti",monthAriaLabel:"Muaji",hourAriaLabel:"Ora",minuteAriaLabel:"Minuta",time_24hr:!0};$g.l10ns.sq=gu;var vL=$g.l10ns;m();var Ug=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},vu={weekdays:{shorthand:["Ned","Pon","Uto","Sre","\u010Cet","Pet","Sub"],longhand:["Nedelja","Ponedeljak","Utorak","Sreda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"]},firstDayOfWeek:1,weekAbbreviation:"Ned.",rangeSeparator:" do ",time_24hr:!0};Ug.l10ns.sr=vu;var bL=Ug.l10ns;m();var Vg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},yu={firstDayOfWeek:1,weekAbbreviation:"v",weekdays:{shorthand:["s\xF6n","m\xE5n","tis","ons","tor","fre","l\xF6r"],longhand:["s\xF6ndag","m\xE5ndag","tisdag","onsdag","torsdag","fredag","l\xF6rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},rangeSeparator:" till ",time_24hr:!0,ordinal:()=>"."};Vg.l10ns.sv=yu;var EL=Vg.l10ns;m();var Wg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},bu={weekdays:{shorthand:["\u0E2D\u0E32","\u0E08","\u0E2D","\u0E1E","\u0E1E\u0E24","\u0E28","\u0E2A"],longhand:["\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C","\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C","\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23","\u0E1E\u0E38\u0E18","\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35","\u0E28\u0E38\u0E01\u0E23\u0E4C","\u0E40\u0E2A\u0E32\u0E23\u0E4C"]},months:{shorthand:["\u0E21.\u0E04.","\u0E01.\u0E1E.","\u0E21\u0E35.\u0E04.","\u0E40\u0E21.\u0E22.","\u0E1E.\u0E04.","\u0E21\u0E34.\u0E22.","\u0E01.\u0E04.","\u0E2A.\u0E04.","\u0E01.\u0E22.","\u0E15.\u0E04.","\u0E1E.\u0E22.","\u0E18.\u0E04."],longhand:["\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21","\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C","\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21","\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19","\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21","\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19","\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21","\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21","\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19","\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21","\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19","\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"]},firstDayOfWeek:1,rangeSeparator:" \u0E16\u0E36\u0E07 ",scrollTitle:"\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E14",toggleTitle:"\u0E04\u0E25\u0E34\u0E01\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19",time_24hr:!0,ordinal:()=>""};Wg.l10ns.th=bu;var xL=Wg.l10ns;m();var zg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},wu={weekdays:{shorthand:["Paz","Pzt","Sal","\xC7ar","Per","Cum","Cmt"],longhand:["Pazar","Pazartesi","Sal\u0131","\xC7ar\u015Famba","Per\u015Fembe","Cuma","Cumartesi"]},months:{shorthand:["Oca","\u015Eub","Mar","Nis","May","Haz","Tem","A\u011Fu","Eyl","Eki","Kas","Ara"],longhand:["Ocak","\u015Eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011Fustos","Eyl\xFCl","Ekim","Kas\u0131m","Aral\u0131k"]},firstDayOfWeek:1,ordinal:()=>".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmak i\xE7in kayd\u0131r\u0131n",toggleTitle:"A\xE7/Kapa",amPM:["\xD6\xD6","\xD6S"],time_24hr:!0};zg.l10ns.tr=wu;var _L=zg.l10ns;m();var jg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Eu={firstDayOfWeek:1,weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0456\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A","\u0412\u0456\u0432\u0442\u043E\u0440\u043E\u043A","\u0421\u0435\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440","\u041F'\u044F\u0442\u043D\u0438\u0446\u044F","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0456\u0447","\u041B\u044E\u0442","\u0411\u0435\u0440","\u041A\u0432\u0456","\u0422\u0440\u0430","\u0427\u0435\u0440","\u041B\u0438\u043F","\u0421\u0435\u0440","\u0412\u0435\u0440","\u0416\u043E\u0432","\u041B\u0438\u0441","\u0413\u0440\u0443"],longhand:["\u0421\u0456\u0447\u0435\u043D\u044C","\u041B\u044E\u0442\u0438\u0439","\u0411\u0435\u0440\u0435\u0437\u0435\u043D\u044C","\u041A\u0432\u0456\u0442\u0435\u043D\u044C","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u0435\u0440\u0432\u0435\u043D\u044C","\u041B\u0438\u043F\u0435\u043D\u044C","\u0421\u0435\u0440\u043F\u0435\u043D\u044C","\u0412\u0435\u0440\u0435\u0441\u0435\u043D\u044C","\u0416\u043E\u0432\u0442\u0435\u043D\u044C","\u041B\u0438\u0441\u0442\u043E\u043F\u0430\u0434","\u0413\u0440\u0443\u0434\u0435\u043D\u044C"]},time_24hr:!0};jg.l10ns.uk=Eu;var DL=jg.l10ns;m();var qg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ku={weekdays:{shorthand:["\u042F\u043A\u0448","\u0414\u0443\u0448","\u0421\u0435\u0448","\u0427\u043E\u0440","\u041F\u0430\u0439","\u0416\u0443\u043C","\u0428\u0430\u043D"],longhand:["\u042F\u043A\u0448\u0430\u043D\u0431\u0430","\u0414\u0443\u0448\u0430\u043D\u0431\u0430","\u0421\u0435\u0448\u0430\u043D\u0431\u0430","\u0427\u043E\u0440\u0448\u0430\u043D\u0431\u0430","\u041F\u0430\u0439\u0448\u0430\u043D\u0431\u0430","\u0416\u0443\u043C\u0430","\u0428\u0430\u043D\u0431\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440","\u0424\u0435\u0432\u0440\u0430\u043B","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440","\u041E\u043A\u0442\u044F\u0431\u0440","\u041D\u043E\u044F\u0431\u0440","\u0414\u0435\u043A\u0430\u0431\u0440"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u04B2\u0430\u0444\u0442\u0430",scrollTitle:"\u041A\u0430\u0442\u0442\u0430\u043B\u0430\u0448\u0442\u0438\u0440\u0438\u0448 \u0443\u0447\u0443\u043D \u0430\u0439\u043B\u0430\u043D\u0442\u0438\u0440\u0438\u043D\u0433",toggleTitle:"\u040E\u0442\u0438\u0448 \u0443\u0447\u0443\u043D \u0431\u043E\u0441\u0438\u043D\u0433",amPM:["AM","PM"],yearAriaLabel:"\u0419\u0438\u043B",time_24hr:!0};qg.l10ns.uz=ku;var ML=qg.l10ns;m();var Yg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},xu={weekdays:{shorthand:["Ya","Du","Se","Cho","Pa","Ju","Sha"],longhand:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"]},months:{shorthand:["Yan","Fev","Mar","Apr","May","Iyun","Iyul","Avg","Sen","Okt","Noy","Dek"],longhand:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"Hafta",scrollTitle:"Kattalashtirish uchun aylantiring",toggleTitle:"O\u2018tish uchun bosing",amPM:["AM","PM"],yearAriaLabel:"Yil",time_24hr:!0};Yg.l10ns.uz_latn=xu;var AL=Yg.l10ns;m();var Jg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Su={weekdays:{shorthand:["CN","T2","T3","T4","T5","T6","T7"],longhand:["Ch\u1EE7 nh\u1EADt","Th\u1EE9 hai","Th\u1EE9 ba","Th\u1EE9 t\u01B0","Th\u1EE9 n\u0103m","Th\u1EE9 s\xE1u","Th\u1EE9 b\u1EA3y"]},months:{shorthand:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],longhand:["Th\xE1ng m\u1ED9t","Th\xE1ng hai","Th\xE1ng ba","Th\xE1ng t\u01B0","Th\xE1ng n\u0103m","Th\xE1ng s\xE1u","Th\xE1ng b\u1EA3y","Th\xE1ng t\xE1m","Th\xE1ng ch\xEDn","Th\xE1ng m\u01B0\u1EDDi","Th\xE1ng m\u01B0\u1EDDi m\u1ED9t","Th\xE1ng m\u01B0\u1EDDi hai"]},firstDayOfWeek:1,rangeSeparator:" \u0111\u1EBFn "};Jg.l10ns.vn=Su;var PL=Jg.l10ns;m();var Gg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},_u={weekdays:{shorthand:["\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u5468",scrollTitle:"\u6EDA\u52A8\u5207\u6362",toggleTitle:"\u70B9\u51FB\u5207\u6362 12/24 \u5C0F\u65F6\u65F6\u5236"};Gg.l10ns.zh=_u;var NL=Gg.l10ns;m();var Qg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Cu={weekdays:{shorthand:["\u9031\u65E5","\u9031\u4E00","\u9031\u4E8C","\u9031\u4E09","\u9031\u56DB","\u9031\u4E94","\u9031\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u9031",scrollTitle:"\u6EFE\u52D5\u5207\u63DB",toggleTitle:"\u9EDE\u64CA\u5207\u63DB 12/24 \u5C0F\u6642\u6642\u5236"};Qg.l10ns.zh_tw=Cu;var RL=Qg.l10ns;var rS={ar:wc,at:Ec,az:kc,be:xc,bg:Sc,bn:_c,bs:Cc,ca:Go,ckb:Tc,cat:Go,cs:Mc,cy:Ic,da:Ac,de:Lc,default:{...Ur},en:Ur,eo:Pc,es:Fc,et:Nc,fa:Oc,fi:Rc,fo:Hc,fr:Bc,gr:Kc,he:$c,hi:Uc,hr:Vc,hu:Wc,hy:zc,id:jc,is:qc,it:Yc,ja:Jc,ka:Gc,ko:Xc,km:Qc,kz:Zc,lt:eu,lv:tu,mk:nu,mn:ru,ms:Tg,my:iu,nl:au,nn:ou,no:su,pa:lu,pl:cu,pt:uu,ro:du,ru:fu,si:pu,sk:hu,sl:mu,sq:gu,sr:vu,sv:yu,th:bu,tr:wu,uk:Eu,vn:Su,zh:_u,zh_tw:Cu,uz:ku,uz_latn:xu},tt=rS;var Zg={ar:tt.ar,cs:tt.cs,da:tt.da,de:tt.de,en:tt.en,"en-gb":tt.en,es:tt.es,fr:tt.fr,hi:tt.hi,id:tt.id,it:tt.it,ja:tt.ja,ko:tt.ko,nl:tt.nl,nn:tt.no,pl:tt.pl,pt:tt.pt,"pt-br":tt.pt,ro:tt.ro,ru:tt.ru,tr:tt.tr,"zh-cn":tt.zh,"zh-tw":tt.zh_tw},iS=Zg[Xg.moment.locale()];function Xo(e){let t=e==null?void 0:e.getSetting("date-picker-week-start"),r=iS||Zg.en;return t?{...r,firstDayOfWeek:t}:r}m();m();var Zo=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],wr={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:e=>typeof console!="undefined"&&console.warn(e),getWeek:e=>{let t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);let r=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-r.getTime())/864e5-3+(r.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1,win:window};m();var Bt=(e,t=2)=>`000${e}`.slice(t*-1),tn=e=>e===!0?1:0;function Du(e,t,r){let n;return function(){let i=arguments;r.clearTimeout(n),n=r.setTimeout(()=>e.apply(this,i),t)}}var es=e=>Array.isArray(e)?e:[e];m();m();var Tu=()=>{},Sa=(e,t,r)=>r.months[t?"shorthand":"longhand"][e],ev={D:Tu,F:function(e,t,r){e.setMonth(r.months.longhand.indexOf(t))},G:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},H:(e,t)=>{e.setHours(parseFloat(t))},J:(e,t)=>{e.setDate(parseFloat(t))},K:(e,t,r)=>{e.setHours(e.getHours()%12+12*tn(new RegExp(r.amPM[1],"i").test(t)))},M:function(e,t,r){e.setMonth(r.months.shorthand.indexOf(t))},S:(e,t)=>{e.setSeconds(parseFloat(t))},U:(e,t)=>new Date(parseFloat(t)*1e3),W:function(e,t,r){let n=parseInt(t),i=new Date(e.getFullYear(),0,2+(n-1)*7,0,0,0,0);return i.setDate(i.getDate()-i.getDay()+r.firstDayOfWeek),i},Y:(e,t)=>{e.setFullYear(parseFloat(t))},Z:(e,t)=>new Date(t),d:(e,t)=>{e.setDate(parseFloat(t))},h:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},i:(e,t)=>{e.setMinutes(parseFloat(t))},j:(e,t)=>{e.setDate(parseFloat(t))},l:Tu,m:(e,t)=>{e.setMonth(parseFloat(t)-1)},n:(e,t)=>{e.setMonth(parseFloat(t)-1)},s:(e,t)=>{e.setSeconds(parseFloat(t))},u:(e,t)=>new Date(parseFloat(t)),w:Tu,y:(e,t)=>{e.setFullYear(2e3+parseFloat(t))}},Jn={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},_i={Z:e=>e.toISOString(),D:function(e,t,r){return t.weekdays.shorthand[_i.w(e,t,r)]},F:function(e,t,r){return Sa(_i.n(e,t,r)-1,!1,t)},G:function(e,t,r){return Bt(_i.h(e,t,r))},H:e=>Bt(e.getHours()),J:function(e,t){return t.ordinal!==void 0?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:(e,t)=>t.amPM[tn(e.getHours()>11)],M:function(e,t){return Sa(e.getMonth(),!0,t)},S:e=>Bt(e.getSeconds()),U:e=>e.getTime()/1e3,W:function(e,t,r){return r.getWeek(e)},Y:e=>Bt(e.getFullYear(),4),d:e=>Bt(e.getDate()),h:e=>e.getHours()%12?e.getHours()%12:12,i:e=>Bt(e.getMinutes()),j:e=>e.getDate(),l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:e=>Bt(e.getMonth()+1),n:e=>e.getMonth()+1,s:e=>e.getSeconds(),u:e=>e.getTime(),w:e=>e.getDay(),y:e=>String(e.getFullYear()).substring(2)};var Mu=({config:e=wr,l10n:t=Ur,isMobile:r=!1})=>(n,i,a)=>{let o=a||t;return e.formatDate!==void 0&&!r?e.formatDate(n,i,o):i.split("").map((s,u,l)=>_i[s]&&l[u-1]!=="\\"?_i[s](n,o,e):s!=="\\"?s:"").join("")},ts=({config:e=wr,l10n:t=Ur})=>(r,n,i,a)=>{if(r!==0&&!r)return;let o=a||t,s,u=r;if(r.getDate)s=new Date(r.getTime());else if(typeof r!="string"&&r.toFixed!==void 0)s=new Date(r);else if(typeof r=="string"){let l=n||(e||wr).dateFormat,c=String(r).trim();if(c==="today")s=new Date,i=!0;else if(e&&e.parseDate)s=e.parseDate(r,l);else if(/Z$/.test(c)||/GMT$/.test(c))s=new Date(r);else{let d,f=[];for(let p=0,g=0,y="";ps=p(s,g,o)||s),s=d?s:void 0}}if(!(s.getDate&&!isNaN(s.getTime()))){e.errorHandler(new Error(`Invalid date provided: ${u}`));return}return i===!0&&s.setHours(0,0,0,0),s};function nn(e,t,r=!0){return r!==!1?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var tv=(e,t,r)=>e>Math.min(t,r)&&ee*3600+t*60+r,nv=e=>{let t=Math.floor(e/3600),r=(e-t*3600)/60;return[t,r,e-t*3600-r*60]},rv={DAY:864e5};function rs(e){let t=e.defaultHour,r=e.defaultMinute,n=e.defaultSeconds;if(e.minDate!==void 0){let i=e.minDate.getHours(),a=e.minDate.getMinutes(),o=e.minDate.getSeconds();t=0?new Date:new Date(n.config.minDate.getTime()),ee=rs(n.config);$.setHours(ee.hours,ee.minutes,ee.seconds,$.getMilliseconds()),n.selectedDates=[$],n.latestSelectedDateObj=$}_!==void 0&&_.type!=="blur"&&to(_);let M=n._input.value;f(),kn(),n._input.value!==M&&n._debouncedChange()}function c(_,M){return _%12+12*tn(M===n.l10n.amPM[1])}function d(_){switch(_%24){case 0:case 12:return 12;default:return _%12}}function f(){if(n.hourElement===void 0||n.minuteElement===void 0)return;let _=(parseInt(n.hourElement.value.slice(-2),10)||0)%24,M=(parseInt(n.minuteElement.value,10)||0)%60,$=n.secondElement!==void 0?(parseInt(n.secondElement.value,10)||0)%60:0;n.amPM!==void 0&&(_=c(_,n.amPM.textContent));let ee=n.config.minTime!==void 0||n.config.minDate&&n.minDateHasTime&&n.latestSelectedDateObj&&nn(n.latestSelectedDateObj,n.config.minDate,!0)===0,le=n.config.maxTime!==void 0||n.config.maxDate&&n.maxDateHasTime&&n.latestSelectedDateObj&&nn(n.latestSelectedDateObj,n.config.maxDate,!0)===0;if(n.config.maxTime!==void 0&&n.config.minTime!==void 0&&n.config.minTime>n.config.maxTime){let re=ns(n.config.minTime.getHours(),n.config.minTime.getMinutes(),n.config.minTime.getSeconds()),ve=ns(n.config.maxTime.getHours(),n.config.maxTime.getMinutes(),n.config.maxTime.getSeconds()),ue=ns(_,M,$);if(ue>ve&&ue=12)]),n.secondElement!==void 0&&(n.secondElement.value=Bt($)))}function y(_){let M=rn(_),$=parseInt(M.value)+(_.delta||0);($/1e3>1||_.key==="Enter"&&!/[^\d]/.test($.toString()))&&te($)}function b(_,M,$,ee){if(Array.isArray(M))return M.forEach(le=>b(_,le,$,ee));if(Array.isArray(_))return _.forEach(le=>b(le,M,$,ee));_.addEventListener(M,$,ee),n._handlers.push({remove:()=>_.removeEventListener(M,$,ee)})}function x(){Ve("onChange")}function T(){if(n.config.wrap&&["open","close","toggle","clear"].forEach(M=>{Array.prototype.forEach.call(n.element.querySelectorAll(`[data-${M}]`),$=>b($,"click",n[M]))}),n.isMobile){qe();return}let _=Du(Ot,50,r);if(n._debouncedChange=Du(x,aS,r),n.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&b(n.daysContainer,"mouseover",M=>{n.config.mode==="range"&&vt(rn(M))}),b(n._input,"keydown",dt),n.calendarContainer!==void 0&&b(n.calendarContainer,"keydown",dt),!n.config.inline&&!n.config.static&&b(r,"resize",_),r.ontouchstart!==void 0?b(r.document,"touchstart",q):b(r.document,"mousedown",q),b(r.document,"focus",q,{capture:!0}),n.config.clickOpens===!0&&(b(n._input,"focus",n.open),b(n._input,"click",n.open)),n.daysContainer!==void 0&&(b(n.monthNav,"click",Sl),b(n.monthNav,["keyup","increment"],y),b(n.daysContainer,"click",Rt)),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0){let M=$=>rn($).select();b(n.timeContainer,["increment"],l),b(n.timeContainer,"blur",l,{capture:!0}),b(n.timeContainer,"click",A),b([n.hourElement,n.minuteElement],["focus","click"],M),n.secondElement!==void 0&&b(n.secondElement,"focus",()=>n.secondElement&&n.secondElement.select()),n.amPM!==void 0&&b(n.amPM,"click",$=>{l($)})}n.config.allowInput&&b(n._input,"blur",Ue)}function C(_,M){let $=_!==void 0?n.parseDate(_):n.latestSelectedDateObj||(n.config.minDate&&n.config.minDate>n.now?n.config.minDate:n.config.maxDate&&n.config.maxDate1),n.calendarContainer.appendChild(_);let M=n.config.appendTo!==void 0&&n.config.appendTo.nodeType!==void 0;if((n.config.inline||n.config.static)&&(n.calendarContainer.classList.add(n.config.inline?"inline":"static"),n.config.inline&&(!M&&n.element.parentNode?n.element.parentNode.insertBefore(n.calendarContainer,n._input.nextSibling):n.config.appendTo!==void 0&&n.config.appendTo.appendChild(n.calendarContainer)),n.config.static)){let $=je(r.document,"div","flatpickr-wrapper");n.element.parentNode&&n.element.parentNode.insertBefore($,n.element),$.appendChild(n.element),n.altInput&&$.appendChild(n.altInput),$.appendChild(n.calendarContainer)}!n.config.static&&!n.config.inline&&(n.config.appendTo!==void 0?n.config.appendTo:r.document.body).appendChild(n.calendarContainer)}function K(_,M,$,ee){let le=we(M,!0),re=je(r.document,"span",_,M.getDate().toString());return re.dateObj=M,re.$i=ee,re.setAttribute("aria-label",n.formatDate(M,n.config.ariaDateFormat)),_.indexOf("hidden")===-1&&nn(M,n.now)===0&&(n.todayDateElem=re,re.classList.add("today"),re.setAttribute("aria-current","date")),le?(re.tabIndex=-1,Ye(M)&&(re.classList.add("selected"),n.selectedDateElem=re,n.config.mode==="range"&&(Kt(re,"startRange",n.selectedDates[0]&&nn(M,n.selectedDates[0],!0)===0),Kt(re,"endRange",n.selectedDates[1]&&nn(M,n.selectedDates[1],!0)===0),_==="nextMonthDay"&&re.classList.add("inRange")))):re.classList.add("flatpickr-disabled"),n.config.mode==="range"&&ir(M)&&!Ye(M)&&re.classList.add("inRange"),n.weekNumbers&&n.config.showMonths===1&&_!=="prevMonthDay"&&ee%7==6&&n.weekNumbers.insertAdjacentHTML("beforeend",""+n.config.getWeek(M)+""),Ve("onDayCreate",re),re}function z(_){_.focus(),n.config.mode==="range"&&vt(_)}function U(_){let M=_>0?0:n.config.showMonths-1,$=_>0?n.config.showMonths:-1;for(let ee=M;ee!=$;ee+=_){let le=n.daysContainer.children[ee],re=_>0?0:le.children.length-1,ve=_>0?le.children.length:-1;for(let ue=re;ue!=ve;ue+=_){let Fe=le.children[ue];if(Fe.className.indexOf("hidden")===-1&&we(Fe.dateObj))return Fe}}}function Z(_,M){let $=_.className.indexOf("Month")===-1?_.dateObj.getMonth():n.currentMonth,ee=M>0?n.config.showMonths:-1,le=M>0?1:-1;for(let re=$-n.currentMonth;re!=ee;re+=le){let ve=n.daysContainer.children[re],ue=$-n.currentMonth===re?_.$i+M:M<0?ve.children.length-1:0,Fe=ve.children.length;for(let Ne=ue;Ne>=0&&Ne0?Fe:-1);Ne+=le){let Me=ve.children[Ne];if(Me.className.indexOf("hidden")===-1&&we(Me.dateObj)&&Math.abs(_.$i-Ne)>=Math.abs(M))return z(Me)}}n.changeMonth(le),J(U(le),0)}function J(_,M){let $=o(),ee=xe($||n.element.doc.body),le=_!==void 0?_:ee?$:n.selectedDateElem!==void 0&&xe(n.selectedDateElem)?n.selectedDateElem:n.todayDateElem!==void 0&&xe(n.todayDateElem)?n.todayDateElem:U(M>0?1:-1);le===void 0?n._input.focus():ee?Z(le,M):z(le)}function se(_,M){let $=(new Date(_,M,1).getDay()-n.l10n.firstDayOfWeek+7)%7,ee=n.utils.getDaysInMonth((M-1+12)%12,_),le=n.utils.getDaysInMonth(M,_),re=r.document.createDocumentFragment(),ve=n.config.showMonths>1,ue=ve?"prevMonthDay hidden":"prevMonthDay",Fe=ve?"nextMonthDay hidden":"nextMonthDay",Ne=ee+1-$,Me=0;for(;Ne<=ee;Ne++,Me++)re.appendChild(K(`flatpickr-day ${ue}`,new Date(_,M-1,Ne),Ne,Me));for(Ne=1;Ne<=le;Ne++,Me++)re.appendChild(K("flatpickr-day",new Date(_,M,Ne),Ne,Me));for(let bt=le+1;bt<=42-$&&(n.config.showMonths===1||Me%7!=0);bt++,Me++)re.appendChild(K(`flatpickr-day ${Fe}`,new Date(_,M+1,bt%le),bt,Me));let Qt=je(r.document,"div","dayContainer");return Qt.appendChild(re),Qt}function G(){if(n.daysContainer===void 0)return;_a(n.daysContainer),n.weekNumbers&&_a(n.weekNumbers);let _=n.element.doc.createDocumentFragment();for(let M=0;M1||n.config.monthSelectorType!=="dropdown")return;let _=function(M){return n.config.minDate!==void 0&&n.currentYear===n.config.minDate.getFullYear()&&Mn.config.maxDate.getMonth())};n.monthsDropdownContainer.tabIndex=-1,n.monthsDropdownContainer.innerHTML="";for(let M=0;M<12;M++){if(!_(M))continue;let $=je(r.document,"option","flatpickr-monthDropdown-month");$.value=new Date(n.currentYear,M).getMonth().toString(),$.textContent=Sa(M,n.config.shorthandCurrentMonth,n.l10n),$.tabIndex=-1,n.currentMonth===M&&($.selected=!0),n.monthsDropdownContainer.appendChild($)}}function ie(){let _=je(r.document,"div","flatpickr-month"),M=r.document.createDocumentFragment(),$;n.config.showMonths>1||n.config.monthSelectorType==="static"?$=je(r.document,"span","cur-month"):(n.monthsDropdownContainer=je(r.document,"select","flatpickr-monthDropdown-months"),n.monthsDropdownContainer.setAttribute("aria-label",n.l10n.monthAriaLabel),b(n.monthsDropdownContainer,"change",ve=>{let ue=rn(ve),Fe=parseInt(ue.value,10);n.changeMonth(Fe-n.currentMonth),Ve("onMonthChange")}),Q(),$=n.monthsDropdownContainer);let ee=Ca(r.document,"cur-year",{tabindex:"-1"}),le=ee.getElementsByTagName("input")[0];le.setAttribute("aria-label",n.l10n.yearAriaLabel),n.config.minDate&&le.setAttribute("min",n.config.minDate.getFullYear().toString()),n.config.maxDate&&(le.setAttribute("max",n.config.maxDate.getFullYear().toString()),le.disabled=!!n.config.minDate&&n.config.minDate.getFullYear()===n.config.maxDate.getFullYear());let re=je(r.document,"div","flatpickr-current-month");return re.appendChild($),re.appendChild(ee),M.appendChild(re),_.appendChild(M),{container:_,yearElement:le,monthElement:$}}function he(){_a(n.monthNav),n.monthNav.appendChild(n.prevMonthNav),n.config.showMonths&&(n.yearElements=[],n.monthElements=[]);for(let _=n.config.showMonths;_--;){let M=ie();n.yearElements.push(M.yearElement),n.monthElements.push(M.monthElement),n.monthNav.appendChild(M.container)}n.monthNav.appendChild(n.nextMonthNav)}function pe(){return n.monthNav=je(r.document,"div","flatpickr-months"),n.yearElements=[],n.monthElements=[],n.prevMonthNav=je(r.document,"span","flatpickr-prev-month"),n.prevMonthNav.innerHTML=n.config.prevArrow,n.nextMonthNav=je(r.document,"span","flatpickr-next-month"),n.nextMonthNav.innerHTML=n.config.nextArrow,he(),Object.defineProperty(n,"_hidePrevMonthArrow",{get:()=>n.__hidePrevMonthArrow,set(_){n.__hidePrevMonthArrow!==_&&(Kt(n.prevMonthNav,"flatpickr-disabled",_),n.__hidePrevMonthArrow=_)}}),Object.defineProperty(n,"_hideNextMonthArrow",{get:()=>n.__hideNextMonthArrow,set(_){n.__hideNextMonthArrow!==_&&(Kt(n.nextMonthNav,"flatpickr-disabled",_),n.__hideNextMonthArrow=_)}}),n.currentYearElement=n.yearElements[0],Mt(),n.monthNav}function ge(){n.calendarContainer.classList.add("hasTime"),n.config.noCalendar&&n.calendarContainer.classList.add("noCalendar");let _=rs(n.config);n.timeContainer=je(r.document,"div","flatpickr-time"),n.timeContainer.tabIndex=-1;let M=je(r.document,"span","flatpickr-time-separator",":"),$=Ca(r.document,"flatpickr-hour",{"aria-label":n.l10n.hourAriaLabel});n.hourElement=$.getElementsByTagName("input")[0];let ee=Ca(r.document,"flatpickr-minute",{"aria-label":n.l10n.minuteAriaLabel});if(n.minuteElement=ee.getElementsByTagName("input")[0],n.hourElement.tabIndex=n.minuteElement.tabIndex=-1,n.hourElement.value=Bt(n.latestSelectedDateObj?n.latestSelectedDateObj.getHours():n.config.time_24hr?_.hours:d(_.hours)),n.minuteElement.value=Bt(n.latestSelectedDateObj?n.latestSelectedDateObj.getMinutes():_.minutes),n.hourElement.setAttribute("step",n.config.hourIncrement.toString()),n.minuteElement.setAttribute("step",n.config.minuteIncrement.toString()),n.hourElement.setAttribute("min",n.config.time_24hr?"0":"1"),n.hourElement.setAttribute("max",n.config.time_24hr?"23":"12"),n.hourElement.setAttribute("maxlength","2"),n.minuteElement.setAttribute("min","0"),n.minuteElement.setAttribute("max","59"),n.minuteElement.setAttribute("maxlength","2"),n.timeContainer.appendChild($),n.timeContainer.appendChild(M),n.timeContainer.appendChild(ee),n.config.time_24hr&&n.timeContainer.classList.add("time24hr"),n.config.enableSeconds){n.timeContainer.classList.add("hasSeconds");let le=Ca(r.document,"flatpickr-second");n.secondElement=le.getElementsByTagName("input")[0],n.secondElement.value=Bt(n.latestSelectedDateObj?n.latestSelectedDateObj.getSeconds():_.seconds),n.secondElement.setAttribute("step",n.minuteElement.getAttribute("step")),n.secondElement.setAttribute("min","0"),n.secondElement.setAttribute("max","59"),n.secondElement.setAttribute("maxlength","2"),n.timeContainer.appendChild(je(r.document,"span","flatpickr-time-separator",":")),n.timeContainer.appendChild(le)}return n.config.time_24hr||(n.amPM=je(r.document,"span","flatpickr-am-pm",n.l10n.amPM[tn((n.latestSelectedDateObj?n.hourElement.value:n.config.defaultHour)>11)]),n.amPM.title=n.l10n.toggleTitle,n.amPM.tabIndex=-1,n.timeContainer.appendChild(n.amPM)),n.timeContainer}function be(){n.weekdayContainer?_a(n.weekdayContainer):n.weekdayContainer=je(r.document,"div","flatpickr-weekdays");for(let _=n.config.showMonths;_--;){let M=je(r.document,"div","flatpickr-weekdaycontainer");n.weekdayContainer.appendChild(M)}return Te(),n.weekdayContainer}function Te(){if(!n.weekdayContainer)return;let _=n.l10n.firstDayOfWeek,M=[...n.l10n.weekdays.shorthand];_>0&&_ + ${M.join("")} + + `}function F(){n.calendarContainer.classList.add("hasWeeks");let _=je(r.document,"div","flatpickr-weekwrapper");_.appendChild(je(r.document,"span","flatpickr-weekday",n.l10n.weekAbbreviation));let M=je(r.document,"div","flatpickr-weeks");return _.appendChild(M),{weekWrapper:_,weekNumbers:M}}function N(_,M=!0){let $=M?_:_-n.currentMonth;$<0&&n._hidePrevMonthArrow===!0||$>0&&n._hideNextMonthArrow===!0||(n.currentMonth+=$,(n.currentMonth<0||n.currentMonth>11)&&(n.currentYear+=n.currentMonth>11?1:-1,n.currentMonth=(n.currentMonth+12)%12,Ve("onYearChange"),Q()),G(),Ve("onMonthChange"),Mt())}function ut(_=!0,M=!0){if(n.input.value="",n.altInput!==void 0&&(n.altInput.value=""),n.mobileInput!==void 0&&(n.mobileInput.value=""),n.selectedDates=[],n.latestSelectedDateObj=void 0,M===!0&&(n.currentYear=n._initialDate.getFullYear(),n.currentMonth=n._initialDate.getMonth()),n.config.enableTime===!0){let{hours:$,minutes:ee,seconds:le}=rs(n.config);g($,ee,le)}n.redraw(),_&&Ve("onChange")}function Ge(){n.isOpen=!1,n.isMobile||(n.calendarContainer!==void 0&&n.calendarContainer.classList.remove("open"),n._input!==void 0&&n._input.classList.remove("active")),Ve("onClose")}function W(){n.config!==void 0&&Ve("onDestroy");for(let _=n._handlers.length;_--;)n._handlers[_].remove();if(n._handlers=[],n.mobileInput)n.mobileInput.parentNode&&n.mobileInput.parentNode.removeChild(n.mobileInput),n.mobileInput=void 0;else if(n.calendarContainer&&n.calendarContainer.parentNode)if(n.config.static&&n.calendarContainer.parentNode){let _=n.calendarContainer.parentNode;if(_.lastChild&&_.removeChild(_.lastChild),_.parentNode){for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.parentNode.removeChild(_)}}else n.calendarContainer.parentNode.removeChild(n.calendarContainer);n.altInput&&(n.input.type="text",n.altInput.parentNode&&n.altInput.parentNode.removeChild(n.altInput),delete n.altInput),n.input&&(n.input.type=n.input._type,n.input.classList.remove("flatpickr-input"),n.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(_=>{try{delete n[_]}catch(M){}})}function j(_){return n.calendarContainer.contains(_)}function q(_){if(n.isOpen&&!n.config.inline){let M=rn(_),$=j(M),le=!(M===n.input||M===n.altInput||n.element.contains(M)||_.path&&_.path.indexOf&&(~_.path.indexOf(n.input)||~_.path.indexOf(n.altInput)))&&!$&&!j(_.relatedTarget),re=!n.config.ignoredFocusElements.some(ve=>ve.contains(M));le&&re&&(n.config.allowInput&&n.setDate(n._input.value,!1,n.config.altInput?n.config.altFormat:n.config.dateFormat),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0&&n.input.value!==""&&n.input.value!==void 0&&l(),n.close(),n.config&&n.config.mode==="range"&&n.selectedDates.length===1&&n.clear(!1))}}function te(_){if(!_||n.config.minDate&&_n.config.maxDate.getFullYear())return;let M=_,$=n.currentYear!==M;n.currentYear=M||n.currentYear,n.config.maxDate&&n.currentYear===n.config.maxDate.getFullYear()?n.currentMonth=Math.min(n.config.maxDate.getMonth(),n.currentMonth):n.config.minDate&&n.currentYear===n.config.minDate.getFullYear()&&(n.currentMonth=Math.max(n.config.minDate.getMonth(),n.currentMonth)),$&&(n.redraw(),Ve("onYearChange"),Q())}function we(_,M=!0){var re;let $=n.parseDate(_,void 0,M);if(n.config.minDate&&$&&nn($,n.config.minDate,M!==void 0?M:!n.minDateHasTime)<0||n.config.maxDate&&$&&nn($,n.config.maxDate,M!==void 0?M:!n.maxDateHasTime)>0)return!1;if(!n.config.enable&&n.config.disable.length===0)return!0;if($===void 0)return!1;let ee=!!n.config.enable,le=(re=n.config.enable)!=null?re:n.config.disable;for(let ve=0,ue;ve=ue.from.getTime()&&$.getTime()<=ue.to.getTime())return ee}return!ee}function xe(_){return n.daysContainer!==void 0?_.className.indexOf("hidden")===-1&&_.className.indexOf("flatpickr-disabled")===-1&&n.daysContainer.contains(_):!1}function Ue(_){let M=_.target===n._input,$=n._input.value.trimEnd()!==Wi();M&&$&&!(_.relatedTarget&&j(_.relatedTarget))&&n.setDate(n._input.value,!0,_.target===n.altInput?n.config.altFormat:n.config.dateFormat)}function dt(_){let M=rn(_),$=n.config.wrap?e.contains(M):M===n._input,ee=n.config.allowInput,le=n.isOpen&&(!ee||!$),re=n.config.inline&&$&&!ee;if(_.keyCode===13&&$){if(ee)return n.setDate(n._input.value,!0,M===n.altInput?n.config.altFormat:n.config.dateFormat),n.close(),M.blur();n.open()}else if(j(M)||le||re){let ve=!!n.timeContainer&&n.timeContainer.contains(M);switch(_.keyCode){case 13:ve?(_.preventDefault(),l(),rr()):Rt(_);break;case 27:_.preventDefault(),rr();break;case 8:case 46:$&&!n.config.allowInput&&(_.preventDefault(),n.clear());break;case 37:case 39:if(!ve&&!$){_.preventDefault();let ue=o();if(n.daysContainer!==void 0&&(ee===!1||ue&&xe(ue))){let Fe=_.keyCode===39?1:-1;_.ctrlKey?(_.stopPropagation(),N(Fe),J(U(1),0)):J(void 0,Fe)}}else n.hourElement&&n.hourElement.focus();break;case 38:case 40:{_.preventDefault();let ue=_.keyCode===40?1:-1;n.daysContainer&&M.$i!==void 0||M===n.input||M===n.altInput?_.ctrlKey?(_.stopPropagation(),te(n.currentYear-ue),J(U(1),0)):ve||J(void 0,ue*7):M===n.currentYearElement?te(n.currentYear-ue):n.config.enableTime&&(!ve&&n.hourElement&&n.hourElement.focus(),l(_),n._debouncedChange());break}case 9:if(ve){let ue=[n.hourElement,n.minuteElement,n.secondElement,n.amPM].concat(n.pluginElements).filter(Ne=>Ne),Fe=ue.indexOf(M);if(Fe!==-1){let Ne=ue[Fe+(_.shiftKey?-1:1)];_.preventDefault(),(Ne||n._input).focus()}}else!n.config.noCalendar&&n.daysContainer&&n.daysContainer.contains(M)&&_.shiftKey&&(_.preventDefault(),n._input.focus());break;default:break}}if(n.amPM!==void 0&&M===n.amPM)switch(_.key){case n.l10n.amPM[0].charAt(0):case n.l10n.amPM[0].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[0],f(),kn();break;case n.l10n.amPM[1].charAt(0):case n.l10n.amPM[1].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[1],f(),kn();break}($||j(M))&&Ve("onKeyDown",_)}function vt(_,M="flatpickr-day"){if(n.selectedDates.length!==1||_&&(!_.classList.contains(M)||_.classList.contains("flatpickr-disabled")))return;let $=_?_.dateObj.getTime():n.days.firstElementChild.dateObj.getTime(),ee=n.parseDate(n.selectedDates[0],void 0,!0).getTime(),le=Math.min($,n.selectedDates[0].getTime()),re=Math.max($,n.selectedDates[0].getTime()),ve=!1,ue=0,Fe=0;for(let Me=le;Mele&&Meue)?ue=Me:Me>ee&&(!Fe||Me .${M}`)).forEach(Me=>{let bt=Me.dateObj.getTime(),ar=ue>0&&bt0&&bt>Fe;if(ar){Me.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(or=>{Me.classList.remove(or)});return}else if(ve&&!ar)return;["startRange","inRange","endRange","notAllowed"].forEach(or=>{Me.classList.remove(or)}),_!==void 0&&(_.classList.add($<=n.selectedDates[0].getTime()?"startRange":"endRange"),ee<$&&bt===ee?Me.classList.add("startRange"):ee>$&&bt===ee&&Me.classList.add("endRange"),bt>=ue&&(Fe===0||bt<=Fe)&&tv(bt,ee,$)&&Me.classList.add("inRange"))})}function Ot(){n.isOpen&&!n.config.static&&!n.config.inline&&Un()}function Bn(_,M=n._positionElement){if(n.isMobile===!0){if(_){_.preventDefault();let ee=rn(_);ee&&ee.blur()}n.mobileInput!==void 0&&(n.mobileInput.focus(),n.mobileInput.click()),Ve("onOpen");return}else if(n._input.disabled||n.config.inline)return;let $=n.isOpen;n.isOpen=!0,$||(n.calendarContainer.classList.add("open"),n._input.classList.add("active"),Ve("onOpen"),Un(M)),n.config.enableTime===!0&&n.config.noCalendar===!0&&n.config.allowInput===!1&&(_===void 0||!n.timeContainer.contains(_.relatedTarget))&&r.setTimeout(()=>n.hourElement.select(),50)}function Kn(_){return M=>{let $=n.config[`_${_}Date`]=n.parseDate(M,n.config.dateFormat),ee=n.config[`_${_==="min"?"max":"min"}Date`];$!==void 0&&(n[_==="min"?"minDateHasTime":"maxDateHasTime"]=$.getHours()>0||$.getMinutes()>0||$.getSeconds()>0),n.selectedDates&&(n.selectedDates=n.selectedDates.filter(le=>we(le)),!n.selectedDates.length&&_==="min"&&p($),kn()),n.daysContainer&&(ti(),$!==void 0?n.currentYearElement[_]=$.getFullYear().toString():n.currentYearElement.removeAttribute(_),n.currentYearElement.disabled=!!ee&&$!==void 0&&ee.getFullYear()===$.getFullYear())}}function $n(){let _=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],M={...JSON.parse(JSON.stringify(e.dataset||{})),...t},$={};n.config.parseDate=M.parseDate,n.config.formatDate=M.formatDate,Object.defineProperty(n.config,"enable",{get:()=>n.config._enable,set:re=>{n.config._enable=Ee(re)}}),Object.defineProperty(n.config,"disable",{get:()=>n.config._disable,set:re=>{n.config._disable=Ee(re)}});let ee=M.mode==="time";if(!M.dateFormat&&(M.enableTime||ee)){let re=gt.defaultConfig.dateFormat||wr.dateFormat;$.dateFormat=M.noCalendar||ee?"H:i"+(M.enableSeconds?":S":""):re+" H:i"+(M.enableSeconds?":S":"")}if(M.altInput&&(M.enableTime||ee)&&!M.altFormat){let re=gt.defaultConfig.altFormat||wr.altFormat;$.altFormat=M.noCalendar||ee?"h:i"+(M.enableSeconds?":S K":" K"):re+` h:i${M.enableSeconds?":S":""} K`}Object.defineProperty(n.config,"minDate",{get:()=>n.config._minDate,set:Kn("min")}),Object.defineProperty(n.config,"maxDate",{get:()=>n.config._maxDate,set:Kn("max")});let le=re=>ve=>{n.config[re==="min"?"_minTime":"_maxTime"]=n.parseDate(ve,"H:i:S")};Object.defineProperty(n.config,"minTime",{get:()=>n.config._minTime,set:le("min")}),Object.defineProperty(n.config,"maxTime",{get:()=>n.config._maxTime,set:le("max")}),M.mode==="time"&&(n.config.noCalendar=!0,n.config.enableTime=!0),Object.assign(n.config,$,M);for(let re=0;re<_.length;re++)n.config[_[re]]=n.config[_[re]]===!0||n.config[_[re]]==="true";Zo.filter(re=>n.config[re]!==void 0).forEach(re=>{n.config[re]=es(n.config[re]||[]).map(s)}),n.isMobile=!n.config.disableMobile&&!n.config.inline&&n.config.mode==="single"&&!n.config.disable.length&&!n.config.enable&&!n.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(let re=0;re-1?n.config[ue]=es(ve[ue]).map(s).concat(n.config[ue]):typeof M[ue]=="undefined"&&(n.config[ue]=ve[ue])}M.altInputClass||(n.config.altInputClass=bn().className+" "+n.config.altInputClass),Ve("onParseConfig")}function bn(){return n.config.wrap?e.querySelector("[data-input]"):e}function wn(){typeof n.config.locale!="object"&&typeof gt.l10ns[n.config.locale]=="undefined"&&n.config.errorHandler(new Error(`flatpickr: invalid locale ${n.config.locale}`)),n.l10n={...gt.l10ns.default,...typeof n.config.locale=="object"?n.config.locale:n.config.locale!=="default"?gt.l10ns[n.config.locale]:void 0},Jn.D=`(${n.l10n.weekdays.shorthand.join("|")})`,Jn.l=`(${n.l10n.weekdays.longhand.join("|")})`,Jn.M=`(${n.l10n.months.shorthand.join("|")})`,Jn.F=`(${n.l10n.months.longhand.join("|")})`,Jn.K=`(${n.l10n.amPM[0]}|${n.l10n.amPM[1]}|${n.l10n.amPM[0].toLowerCase()}|${n.l10n.amPM[1].toLowerCase()})`,{...t,...JSON.parse(JSON.stringify(e.dataset||{}))}.time_24hr===void 0&>.defaultConfig.time_24hr===void 0&&(n.config.time_24hr=n.l10n.time_24hr),n.formatDate=Mu(n),n.parseDate=ts({config:n.config,l10n:n.l10n})}function Un(_){if(typeof n.config.position=="function")return void n.config.position(n,_);if(n.calendarContainer===void 0)return;Ve("onPreCalendarPosition");let M=_||n._positionElement,$=Array.prototype.reduce.call(n.calendarContainer.children,(Tr,ji)=>Tr+ji.offsetHeight,0),ee=n.calendarContainer.offsetWidth,le=n.config.position.split(" "),re=le[0],ve=le.length>1?le[1]:null,ue=M.getBoundingClientRect(),Fe=r.innerHeight-ue.bottom,Ne=re==="above"||re!=="below"&&Fe<$&&ue.top>$,Me=r.pageYOffset+ue.top+(Ne?-$-2:M.offsetHeight+2);if(Kt(n.calendarContainer,"arrowTop",!Ne),Kt(n.calendarContainer,"arrowBottom",Ne),n.config.inline)return;let Qt=r.pageXOffset+ue.left,bt=!1,ar=!1;ve==="center"?(Qt-=(ee-ue.width)/2,bt=!0):ve==="right"&&(Qt-=ee-ue.width,ar=!0),Kt(n.calendarContainer,"arrowLeft",!bt&&!ar),Kt(n.calendarContainer,"arrowCenter",bt),Kt(n.calendarContainer,"arrowRight",ar);let or=r.document.body.offsetWidth-(r.pageXOffset+ue.right),zi=Qt+ee>r.document.body.offsetWidth,no=or+ee>r.document.body.offsetWidth;if(Kt(n.calendarContainer,"rightMost",zi),!n.config.static)if(n.calendarContainer.style.top=`${Me}px`,!zi)n.calendarContainer.style.left=`${Qt}px`,n.calendarContainer.style.right="auto";else if(!no)n.calendarContainer.style.left="auto",n.calendarContainer.style.right=`${or}px`;else{let Tr=Zr();if(Tr===void 0)return;let ji=r.document.body.offsetWidth,_l=Math.max(0,ji/2-ee/2),Cl=".flatpickr-calendar.centerMost:before",Mf=".flatpickr-calendar.centerMost:after",O=Tr.cssRules.length,w=`{left:${ue.left}px;right:auto;}`;Kt(n.calendarContainer,"rightMost",!1),Kt(n.calendarContainer,"centerMost",!0),Tr.insertRule(`${Cl},${Mf}${w}`,O),n.calendarContainer.style.left=`${_l}px`,n.calendarContainer.style.right="auto"}}function Zr(){let _=null;for(let M=0;Mve.classList&&ve.classList.contains("flatpickr-day")&&!ve.classList.contains("flatpickr-disabled")&&!ve.classList.contains("notAllowed"),$=Iu(rn(_),M);if($===void 0)return;let ee=$,le=n.latestSelectedDateObj=new Date(ee.dateObj.getTime()),re=(le.getMonth()n.currentMonth+n.config.showMonths-1)&&n.config.mode!=="range";if(n.selectedDateElem=ee,n.config.mode==="single")n.selectedDates=[le];else if(n.config.mode==="multiple"){let ve=Ye(le);ve?n.selectedDates.splice(parseInt(ve),1):n.selectedDates.push(le)}else n.config.mode==="range"&&(n.selectedDates.length===2&&n.clear(!1,!1),n.latestSelectedDateObj=le,n.selectedDates.push(le),nn(le,n.selectedDates[0],!0)!==0&&n.selectedDates.sort((ve,ue)=>ve.getTime()-ue.getTime()));if(f(),re){let ve=n.currentYear!==le.getFullYear();n.currentYear=le.getFullYear(),n.currentMonth=le.getMonth(),ve&&(Ve("onYearChange"),Q()),Ve("onMonthChange")}if(Mt(),G(),kn(),!re&&n.config.mode!=="range"&&n.config.showMonths===1?z(ee):n.selectedDateElem!==void 0&&n.hourElement===void 0&&n.selectedDateElem&&n.selectedDateElem.focus(),n.hourElement!==void 0&&n.hourElement!==void 0&&n.hourElement.focus(),n.config.closeOnSelect){let ve=n.config.mode==="single"&&!n.config.enableTime,ue=n.config.mode==="range"&&n.selectedDates.length===2&&!n.config.enableTime;(ve||ue)&&rr()}x()}let Wt={locale:[wn,Te],showMonths:[he,u,be],minDate:[C],maxDate:[C],positionElement:[En],clickOpens:[()=>{n.config.clickOpens===!0?(b(n._input,"focus",n.open),b(n._input,"click",n.open)):(n._input.removeEventListener("focus",n.open),n._input.removeEventListener("click",n.open))}]};function yt(_,M){if(_!==null&&typeof _=="object"){Object.assign(n.config,_);for(let $ in _)Wt[$]!==void 0&&Wt[$].forEach(ee=>ee())}else n.config[_]=M,Wt[_]!==void 0?Wt[_].forEach($=>$()):Zo.indexOf(_)>-1&&(n.config[_]=es(M));n.redraw(),kn(!0)}function Y(_,M){let $=[];if(Array.isArray(_))$=_.map(ee=>n.parseDate(ee,M));else if(_.getDate||typeof _=="number")$=[n.parseDate(_,M)];else if(typeof _=="string")switch(n.config.mode){case"single":case"time":$=[n.parseDate(_,M)];break;case"multiple":$=_.split(n.config.conjunction).map(ee=>n.parseDate(ee,M));break;case"range":$=_.split(n.l10n.rangeSeparator).map(ee=>n.parseDate(ee,M));break;default:break}else n.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(_)}`));n.selectedDates=n.config.allowInvalidPreload?$:$.filter(ee=>ee.getDate&&we(ee,!1)),n.config.mode==="range"&&n.selectedDates.sort((ee,le)=>ee.getTime()-le.getTime())}function oe(_,M=!1,$=n.config.dateFormat){if(_!==0&&!_||Array.isArray(_)&&_.length===0)return n.clear(M);Y(_,$),n.latestSelectedDateObj=n.selectedDates[n.selectedDates.length-1],n.redraw(),C(void 0,M),p(),n.selectedDates.length===0&&n.clear(!1),kn(M),M&&Ve("onChange")}function Ee(_){return _.slice().map(M=>typeof M=="string"||typeof M=="number"||M.getDate?n.parseDate(M,void 0,!0):M&&typeof M=="object"&&M.from&&M.to?{from:n.parseDate(M.from,void 0),to:n.parseDate(M.to,void 0)}:M).filter(M=>M)}function ze(){n.selectedDates=[],n.now=n.parseDate(n.config.now)||new Date;let _=n.config.defaultDate||((n.input.nodeName==="INPUT"||n.input.nodeName==="TEXTAREA")&&n.input.placeholder&&n.input.value===n.input.placeholder?null:n.input.value);_&&Y(_,n.config.dateFormat),n._initialDate=n.selectedDates.length>0?n.selectedDates[0]:n.config.minDate&&n.config.minDate.getTime()>n.now.getTime()?n.config.minDate:n.config.maxDate&&n.config.maxDate.getTime()0&&(n.latestSelectedDateObj=n.selectedDates[0]),n.config.minTime!==void 0&&(n.config.minTime=n.parseDate(n.config.minTime,"H:i")),n.config.maxTime!==void 0&&(n.config.maxTime=n.parseDate(n.config.maxTime,"H:i")),n.minDateHasTime=!!n.config.minDate&&(n.config.minDate.getHours()>0||n.config.minDate.getMinutes()>0||n.config.minDate.getSeconds()>0),n.maxDateHasTime=!!n.config.maxDate&&(n.config.maxDate.getHours()>0||n.config.maxDate.getMinutes()>0||n.config.maxDate.getSeconds()>0)}function Tt(){if(n.input=bn(),!n.input){n.config.errorHandler(new Error("Invalid input element specified"));return}n.input._type=n.input.type,n.input.type="text",n.input.classList.add("flatpickr-input"),n._input=n.input,n.config.altInput&&(n.altInput=je(r.document,n.input.nodeName,n.config.altInputClass),n._input=n.altInput,n.altInput.placeholder=n.input.placeholder,n.altInput.disabled=n.input.disabled,n.altInput.required=n.input.required,n.altInput.tabIndex=n.input.tabIndex,n.altInput.type="text",n.input.setAttribute("type","hidden"),!n.config.static&&n.input.parentNode&&n.input.parentNode.insertBefore(n.altInput,n.input.nextSibling)),n.config.allowInput||n._input.setAttribute("readonly","readonly"),En()}function En(){n._positionElement=n.config.positionElement||n._input}function qe(){let _=n.config.enableTime?n.config.noCalendar?"time":"datetime-local":"date";n.mobileInput=je(r.document,"input",n.input.className+" flatpickr-mobile"),n.mobileInput.tabIndex=1,n.mobileInput.type=_,n.mobileInput.disabled=n.input.disabled,n.mobileInput.required=n.input.required,n.mobileInput.placeholder=n.input.placeholder,n.mobileFormatStr=_==="datetime-local"?"Y-m-d\\TH:i:S":_==="date"?"Y-m-d":"H:i:S",n.selectedDates.length>0&&(n.mobileInput.defaultValue=n.mobileInput.value=n.formatDate(n.selectedDates[0],n.mobileFormatStr)),n.config.minDate&&(n.mobileInput.min=n.formatDate(n.config.minDate,"Y-m-d")),n.config.maxDate&&(n.mobileInput.max=n.formatDate(n.config.maxDate,"Y-m-d")),n.input.getAttribute("step")&&(n.mobileInput.step=String(n.input.getAttribute("step"))),n.input.type="hidden",n.altInput!==void 0&&(n.altInput.type="hidden");try{n.input.parentNode&&n.input.parentNode.insertBefore(n.mobileInput,n.input.nextSibling)}catch(M){}b(n.mobileInput,"change",M=>{n.setDate(rn(M).value,!1,n.mobileFormatStr),Ve("onChange"),Ve("onClose")})}function st(_){if(n.isOpen===!0)return n.close();n.open(_)}function Ve(_,M){if(n.config===void 0)return;let $=n.config[_];if($!==void 0&&$.length>0)for(let ee=0;$[ee]&&ee<$.length;ee++)$[ee](n.selectedDates,n.input.value,n,M);_==="onChange"&&(n.input.dispatchEvent(fn("change")),n.input.dispatchEvent(fn("input")))}function fn(_){let M=r.document.createEvent("Event");return M.initEvent(_,!0,!0),M}function Ye(_){for(let M=0;M=0&&nn(_,n.selectedDates[1])<=0}function Mt(){n.config.noCalendar||n.isMobile||!n.monthNav||(n.yearElements.forEach((_,M)=>{let $=new Date(n.currentYear,n.currentMonth,1);$.setMonth(n.currentMonth+M),n.config.showMonths>1||n.config.monthSelectorType==="static"?n.monthElements[M].textContent=Sa($.getMonth(),n.config.shorthandCurrentMonth,n.l10n)+" ":n.monthsDropdownContainer.value=$.getMonth().toString(),_.value=$.getFullYear().toString()}),n._hidePrevMonthArrow=n.config.minDate!==void 0&&(n.currentYear===n.config.minDate.getFullYear()?n.currentMonth<=n.config.minDate.getMonth():n.currentYearn.config.maxDate.getMonth():n.currentYear>n.config.maxDate.getFullYear()))}function Wi(_){let M=_||(n.config.altInput?n.config.altFormat:n.config.dateFormat);return n.selectedDates.map($=>n.formatDate($,M)).filter(($,ee,le)=>n.config.mode!=="range"||n.config.enableTime||le.indexOf($)===ee).join(n.config.mode!=="range"?n.config.conjunction:n.l10n.rangeSeparator)}function kn(_=!0){n.mobileInput!==void 0&&n.mobileFormatStr&&(n.mobileInput.value=n.latestSelectedDateObj!==void 0?n.formatDate(n.latestSelectedDateObj,n.mobileFormatStr):""),n.input.value=Wi(n.config.dateFormat),n.altInput!==void 0&&(n.altInput.value=Wi(n.config.altFormat)),_!==!1&&Ve("onValueUpdate")}function Sl(_){let M=rn(_),$=n.prevMonthNav.contains(M),ee=n.nextMonthNav.contains(M);$||ee?N($?-1:1):n.yearElements.indexOf(M)>=0?M.select():M.classList.contains("arrowUp")?n.changeYear(n.currentYear+1):M.classList.contains("arrowDown")&&n.changeYear(n.currentYear-1)}function to(_){_.preventDefault();let M=_.type==="keydown",$=rn(_),ee=$;n.amPM!==void 0&&$===n.amPM&&(n.amPM.textContent=n.l10n.amPM[tn(n.amPM.textContent===n.l10n.amPM[0])]);let le=parseFloat(ee.getAttribute("min")),re=parseFloat(ee.getAttribute("max")),ve=parseFloat(ee.getAttribute("step")),ue=parseInt(ee.value,10),Fe=_.delta||(M?_.which===38?1:-1:0),Ne=ue+ve*Fe;if(typeof ee.value!="undefined"&&ee.value.length===2){let Me=ee===n.hourElement,Qt=ee===n.minuteElement;Nere&&(Ne=ee===n.hourElement?Ne-re-tn(!n.amPM):le,Qt&&H(void 0,1,n.hourElement)),n.amPM&&Me&&(ve===1?Ne+ue===23:Math.abs(Ne-ue)>ve)&&(n.amPM.textContent=n.l10n.amPM[tn(n.amPM.textContent===n.l10n.amPM[0])]),ee.value=Bt(Ne)}}return a(),n}function is(e,t){let r=Array.prototype.slice.call(e).filter(i=>i.onClickEvent),n=[];for(let i=0;i{gt.l10ns.default={...gt.l10ns.default,...e}};gt.setDefaults=e=>{gt.defaultConfig={...gt.defaultConfig,...e}};gt.parseDate=ts({});gt.formatDate=Mu({});gt.compareDates=nn;typeof jQuery!="undefined"&&typeof jQuery.fn!="undefined"&&(jQuery.fn.flatpickr=function(e){return is(this,e)});Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof e=="string"?parseInt(e,10):e))};typeof window!="undefined"&&(window.flatpickr=gt);var as=gt;function os(e,t,r,n,i){return e.document.body.createDiv({cls:`${B("date-picker")} ${B("ignore-click-outside")}`},a=>{a.style.left=`${r.x||0}px`,a.style.top=`${r.y||0}px`,a.createEl("input",{type:"text"},o=>{a.win.setTimeout(()=>{let s=null,u=d=>{d.target instanceof d.view.HTMLElement&&d.target.closest(`.${B("date-picker")}`)===null&&c()},l=d=>{d.key==="Escape"&&c()},c=()=>{s.destroy(),a.remove(),e.document.body.removeEventListener("click",u),e.document.removeEventListener("keydown",l)};s=as(o,{locale:Xo(t),defaultDate:i,inline:!0,onChange:d=>{n(d),c()},win:e}),a.win.setTimeout(()=>{let d=a.clientHeight,f=a.clientWidth;r.y+d>e.innerHeight&&(a.style.top=`${(r.y||0)-d}px`),r.x+f>e.innerWidth&&(a.style.left=`${(r.x||0)-f}px`)}),e.document.body.addEventListener("click",u),e.document.addEventListener("keydown",l)})})})}function ss({stateManager:e,boardModifiers:t,item:r,hasDate:n,path:i}){let a=e.getSetting("date-format"),o=e.getSetting("link-date-to-daily-note"),s=e.getSetting("date-trigger"),u=o?"(?:\\[[^\\]]+\\]\\([^)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",l=new RegExp(`(^|\\s)${Ln(s)}${u}`);return c=>{let d=c[0],f=(0,rt.moment)(d).format(a),p=o?Yo(e.app,f):`{${f}}`,g=r.data.titleRaw;n?g=r.data.titleRaw.replace(l,`$1${s}${p}`):g=`${r.data.titleRaw} ${s}${p}`,e.updateItemContent(r,g).then(y=>{t.updateItem(i,y)}).catch(y=>{e.setError(y),console.error(y)})}}function Au(e){let t=e.getSetting("time-format"),r=[];for(let n=0;n<24;n++)r.push((0,rt.moment)({hour:n}).format(t)),r.push((0,rt.moment)({hour:n,minute:15}).format(t)),r.push((0,rt.moment)({hour:n,minute:30}).format(t)),r.push((0,rt.moment)({hour:n,minute:45}).format(t));return r}function ls(e,t,r,n,i){let a=B("time-picker"),o=t.getSetting("time-format"),s=i==null?void 0:i.format(o);e.document.body.createDiv({cls:`${a} ${B("ignore-click-outside")}`},u=>{let l=Au(t),c=b=>{b.target instanceof b.view.HTMLElement&&b.target.hasClass(B("time-picker-item"))&&b.target.dataset.value&&(n(b.target.dataset.value),p())},d=b=>{b.target instanceof b.view.HTMLElement&&b.target.closest(`.${a}`)===null&&p()},f=b=>{b.key==="Escape"&&p()},p=()=>{u.remove(),u.removeEventListener("click",c),e.document.body.removeEventListener("click",d),e.document.removeEventListener("keydown",f)};u.style.left=`${r.x||0}px`,u.style.top=`${r.y||0}px`;let g=null,y=null;l.forEach((b,x)=>{let T=b===s;u.createDiv({cls:`${B("time-picker-item")} ${T?"is-selected":""}`,text:b},C=>{C.createEl("span",{cls:B("time-picker-check"),prepend:!0},A=>{(0,rt.setIcon)(A,"lucide-check")}),x%4==0&&C.addClass("is-hour"),C.dataset.value=b,T&&(g=C),x===Math.floor(l.length/2)&&(y=C)})}),u.win.setTimeout(()=>{var T;let b=u.clientHeight,x=u.clientWidth;r.y+b>e.innerHeight&&(u.style.top=`${(r.y||0)-b}px`),r.x+x>e.innerWidth&&(u.style.left=`${(r.x||0)-x}px`),(T=g||y)==null||T.scrollIntoView({block:"center",inline:"nearest"}),u.addEventListener("click",c),e.document.body.addEventListener("click",d),e.document.addEventListener("keydown",f)})})}function cs({stateManager:e,boardModifiers:t,item:r,hasTime:n,path:i}){let a=e.getSetting("time-trigger"),o=new RegExp(`(^|\\s)${Ln(a)}{([^}]+)}`);return s=>{let u=r.data.titleRaw;n?u=r.data.titleRaw.replace(o,`$1${a}{${s}}`):u=`${r.data.titleRaw} ${a}{${s}}`,e.updateItemContent(r,u).then(l=>{t.updateItem(i,l)}).catch(l=>{e.setError(l),console.error(l)})}}function iv(e){let t=e.data.metadata.date,r=[];t&&(t.isSame(new Date,"day")&&r.push("is-today"),t.isAfter(new Date,"day")&&r.push("is-future"),t.isBefore(new Date,"day")&&r.push("is-past")),e.data.isComplete&&r.push("is-complete");for(let n of e.data.metadata.tags)r.push(`has-tag-${n.slice(1)}`);return r}function Vr(e,t,r,n){return e.app.fileManager.generateMarkdownLink(t,r,n)}function sS(e,t,r){return rt.htmlToMarkdown?(0,rt.htmlToMarkdown)(r):rt.MarkdownSourceView.prototype.handleDataTransfer.call({app:e.app},t)}function lS(e){return e.replace(/^\[(.*)\]\(app:\/\/obsidian.md\/(.*)\)$/,"[$1]($2)")}function Lu(e){var r;let t=e.require("electron").remote.clipboard;if(process.platform==="darwin"){if(t.has("NSFilenamesPboardType"))return((r=t.read("NSFilenamesPboardType").match(/.*<\/string>/g))==null?void 0:r.map(n=>n.replace(/|<\/string>/g,"")))||[];{let n=t.readImage("clipboard");return n.isEmpty()?[t.read("public.file-url").replace("file://","")].filter(i=>i):[{buffer:n.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,rt.moment)().format("YYYYMMDDHHmmss")}.png`}]}}else if(t.has("CF_HDROP")){let n=t.read("CF_HDROP")||"",i=[...n].filter((o,s)=>n.charCodeAt(s)!==0).join("").replace(/\\/g,"\\"),a=i.match(/[a-zA-Z]:\\/);if(a){let o=i.indexOf(a[0]);return o!==0&&(i=i.slice(o)),i.split(a[0]).filter(s=>s).map(s=>a+s)}}else{let n=t.readImage("clipboard");return n.isEmpty()?[t.readBuffer("FileNameW").toString("ucs2").replace(RegExp(String.fromCharCode(0),"g"),"")].filter(i=>i):[{buffer:n.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,rt.moment)().format("YYYYMMDDHHmmss")}.png`}]}return null}function cS(e){return e.split("\\").pop().split("/").pop()}async function uS(e,t,r,n){let i=await e.app.vault.getAvailablePathForAttachments(t,r,e.file),a=await e.app.vault.createBinary(i,n);return Vr(e,a,e.file.path)}async function dS(e,t){let r=Lu(t);if(!r||r.length===0)return null;let n=t.require("fs/promises"),i=t.require("path");return(await Promise.all(r.map(async a=>{if(typeof a=="string"){let s=cS(a).split("."),u=s.pop(),l=s.join("."),c=await e.app.vault.getAvailablePathForAttachments(l,u,e.file),d=e.app.vault.adapter.basePath;await n.copyFile(a,i.join(d,c)),await new Promise(p=>t.setTimeout(p,50));let f=e.app.vault.getAbstractFileByPath(c);return Vr(e,f,e.file.path)}else{let o=a.originalName.split("."),s=o.pop(),u=o.join(".");return await uS(e,u,s,a.buffer)}}))).filter(a=>a)}function av(e,t,r){return Promise.all(t.map(n=>{let i=n.name.split("."),a=i.pop(),o=i.join(".");if(r){switch(n.type){case"text/jpg":a="jpg";break;case"text/jpeg":a="jpeg";break;case"text/png":a="png";break}o="Pasted image "+(0,rt.moment)().format("YYYYMMDDHHmmss")}return new Promise((s,u)=>{let l=new FileReader;l.onload=async c=>{try{let d=await e.app.vault.getAvailablePathForAttachments(o,a,e.file),f=await e.app.vault.createBinary(d,c.target.result);s(Vr(e,f,e.file.path))}catch(d){console.error(d),u(d)}},l.readAsArrayBuffer(n)})}))}async function fS(e,t,r){let n=!t.view,i=n?e.getAView().isShiftPressed:!1,a=n?t.clipboardData:t.dataTransfer,o=n&&rt.Platform.isDesktopApp?r.require("electron").remote.clipboard:null,s=o?o.availableFormats():[];if(n){if(n&&!i&&!s.includes("text/rtf")){if(rt.Platform.isDesktopApp){let g=await dS(e,r);if(g==null?void 0:g.length)return g}let f=[],p=t.clipboardData.items;for(let g in p){let y=p[g];y.kind==="file"&&f.push(y.getAsFile())}if(f.length)return await av(e,f,!0)}}else{let f=await hc(t);if(f.length)return await av(e,f)}let u=a.getData("text/html"),l=a.getData("text/plain"),c=a.getData("text/uri-list"),d=i?l||u:sS(e,a,u);return[lS(d||c||l||u||"").trim()]}async function us(e,t,r){let n=e.app.dragManager.draggable,i=t.view?t.dataTransfer:t.clipboardData;switch(n==null?void 0:n.type){case"file":return[Vr(e,n.file,e.file.path)];case"files":return n.files.map(a=>Vr(e,a,e.file.path));case"folder":return n.file.children.map(a=>a instanceof rt.TFolder?null:Vr(e,a,e.file.path)).filter(a=>a);case"link":{let a=n.file?Vr(e,n.file,(0,rt.parseLinktext)(n.linktext).subpath):`[[${n.linktext}]]`,o=new DOMParser().parseFromString(i.getData("text/html"),"text/html").documentElement.textContent;return a=a.replace(/]]$/,`|${o}]]`).replace(/^\[[^\]].+]\(/,`[${o}](`),[a]}default:return await fS(e,t,r)}}m();function ds(e,t){let r,n,i=(...a)=>{r=a,!n&&(n=e.requestAnimationFrame(()=>{n=null,t(...r)}))};return i.cancel=()=>{!n||(e.cancelAnimationFrame(n),n=null)},i}var ov={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"};var Ci={outOfTheWay:200,minDropTime:330,maxDropTime:550},Er=`${Ci.outOfTheWay}ms ${ov.outOfTheWay}`;var ln={none:"none",fluid:`opacity ${Er}`,snap:`transform ${Er}, opacity ${Er}`,drop:e=>{let t=`${e}ms ${ov.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Er}`,placeholder:`height ${Er}, width ${Er}, margin ${Er}, border-color ${Er}`},pS=(e,t)=>e.x===t.x&&e.y===t.y,hS={x:0,y:0},sv=e=>pS(e,hS)?void 0:`translate(${e.x}px, ${e.y}px)`,lv={moveTo:sv,drop:e=>sv(e)},mS=Ci.maxDropTime-Ci.minDropTime,cv=1500,gS=.6;function Di({position:e,destination:t,isCancel:r}){let n=di(e,t);if(n<=0)return Ci.minDropTime;if(n>=cv)return Ci.maxDropTime;let i=n/cv,a=Ci.minDropTime+mS*i,o=r?a*gS:a;return Math.round(o)}function Tn(e,t,r){e.style.getPropertyValue(t)!==r&&e.style.setProperty(t,r)}function fs(e,t){e.style.getPropertyValue(t)&&e.style.removeProperty(t)}m();m();var Mn;(function(i){i[i.TitleAsc=0]="TitleAsc",i[i.TitleDsc=1]="TitleDsc",i[i.DateAsc=2]="DateAsc",i[i.DateDsc=3]="DateDsc"})(Mn||(Mn={}));var Je={Item:"item",Lane:"lane",Board:"board",MetadataSetting:"metadata-setting",TagColorSetting:"tag-color",DateColorSetting:"date-color"},ps={accepts:[Je.Item],type:Je.Item,children:[]},kr={accepts:[Je.Lane],type:Je.Lane},hs={accepts:[],type:Je.Board},ms={accepts:[Je.MetadataSetting],type:Je.MetadataSetting,children:[]},gs={accepts:[],type:Je.TagColorSetting,children:[]},vs={accepts:[],type:Je.DateColorSetting,children:[]};function Pu(e,t,r,n,i){let a="htmldnd",o=Ae(),s=e-75,u=e+75,l=t-25,c=t+25;return{scopeId:a,entityId:`${a}-${o}`,initial:[s,l,u,c],getParentScrollState(){return on},getParentScrollShift(){return Pn},recalcInitial(){},getHitbox(){return this.initial},getPath(){return[]},getData(){return{viewId:n,type:Je.Item,id:o,content:r,accepts:[],win:i}}}}var Nu=class{constructor(t,r,n,i){this.isHTMLDragging=!1;this.dragOverTimeout=0;this.win=t,this.hitboxEntities=n,this.scrollEntities=i,this.emitter=r}getDragEventData(){return{dragEntity:this.dragEntity,dragEntityId:this.dragEntityId,dragEntityMargin:this.dragEntityMargin,dragOrigin:this.dragOrigin,dragOriginHitbox:this.dragOriginHitbox,dragPosition:this.dragPosition,primaryIntersection:this.primaryIntersection,scrollIntersection:this.scrollIntersection}}dragStart(t,r){var a;let n=(r==null?void 0:r.dataset.hitboxid)||t.currentTarget.dataset.hitboxid;if(!n)return;let i=getComputedStyle(r||t.currentTarget);this.dragEntityId=n,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=this.hitboxEntities.get(n),this.dragOriginHitbox=(a=this.dragEntity)==null?void 0:a.getHitbox(),this.dragEntityMargin=[parseFloat(i.marginLeft)||0,parseFloat(i.marginTop)||0,parseFloat(i.marginRight)||0,parseFloat(i.marginBottom)||0],this.emitter.emit("dragStart",this.getDragEventData())}dragStartHTML(t,r){this.isHTMLDragging=!0;let n=Pu(t.pageX,t.pageY,[],r,t.view);this.dragEntityId=n.entityId,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=n,this.dragOriginHitbox=n.getHitbox(),this.dragEntityMargin=[0,0,0,0],this.emitter.emit("dragStart",this.getDragEventData())}dragMove(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragMoveHTML(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragEnd(t){this.emitter.emit("dragEnd",this.getDragEventData()),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0}dragEndHTML(t,r,n,i){this.isHTMLDragging=!1,i||(this.dragEntity=Pu(t.pageX,t.pageY,n,r,t.view),this.emitter.emit("dragEnd",this.getDragEventData())),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0,i&&this.emitter.emit("dragEnd",this.getDragEventData())}onHTMLDragLeave(t){this.win.clearTimeout(this.dragOverTimeout),this.dragOverTimeout=this.win.setTimeout(t,351)}calculateDragIntersect(){if(!this.dragEntity||!this.dragPosition||!this.dragOrigin||!this.dragOriginHitbox)return;let{type:t,win:r}=this.dragEntity.getData(),n=[],i=[],a=[],o=[];if(this.hitboxEntities.forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(n.push(l),i.push(l.getHitbox()))}),this.scrollEntities.forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(a.push(l),o.push(l.getHitbox()))}),n.length===0&&a.length===0)return;let s=Rp(this.dragOriginHitbox,this.dragOrigin,this.dragPosition);this.handleScrollIntersect(s,this.dragEntity.entityId,o,a)||this.handleHitboxIntersect(s,this.dragEntity.entityId,i,n)}handleScrollIntersect(t,r,n,i){let a=(0,Fu.default)([t],n).map(s=>i[s[1]]),o=Np(a,t,r);if(this.scrollIntersection&&(!o||o[0]!==this.scrollIntersection[0])){let[s,u]=this.scrollIntersection,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("endDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=void 0}if(o&&(!this.scrollIntersection||this.scrollIntersection[0]!==o[0])){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("beginDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}else if(o&&this.scrollIntersection&&o[0]===this.scrollIntersection[0]){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("updateDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}return!!o}handleHitboxIntersect(t,r,n,i){let a=(0,Fu.default)([t],n).map(s=>i[s[1]]),o=zl(a,t,r);this.primaryIntersection&&this.primaryIntersection!==o&&(this.emitter.emit("dragLeave",this.getDragEventData(),this.primaryIntersection.entityId),this.primaryIntersection=void 0),o&&this.primaryIntersection!==o&&(this.emitter.emit("dragEnter",{...this.getDragEventData(),primaryIntersection:o},o.entityId),this.primaryIntersection=o)}},Ti=e=>{e.preventDefault(),e.stopPropagation()};function Mi(e,t){let r=P.useContext(xt);P.useEffect(()=>{let n=e.current,i=t.current;if(!r||!n||!i)return;let a=s=>{if(s.defaultPrevented||s.target.dataset.ignoreDrag||s.button!==0&&s.buttons!==1)return;let u=s.view,l=["pen","touch"].includes(s.pointerType);l||(s.stopPropagation(),s.preventDefault());let c=s,d={x:s.pageX,y:s.pageY},f=!1,p=0;l&&(u.addEventListener("contextmenu",Ti,!0),p=u.setTimeout(()=>{r.dragManager.dragStart(c,n),f=!0,u.addEventListener("touchmove",Ti,{passive:!1})},500));let g=ds(u,b=>{l?f?r.dragManager.dragMove(b):di(d,{x:b.pageX,y:b.pageY})>5&&(u.clearTimeout(p),u.removeEventListener("touchmove",Ti),u.removeEventListener("contextmenu",Ti,!0),u.removeEventListener("pointermove",g),u.removeEventListener("pointerup",y),u.removeEventListener("pointercancel",y)):f?r.dragManager.dragMove(b):di(d,{x:b.pageX,y:b.pageY})>5&&(r.dragManager.dragStart(c,n),f=!0)}),y=b=>{u.clearTimeout(p),f=!1,r.dragManager.dragEnd(b),u.removeEventListener("pointermove",g),u.removeEventListener("pointerup",y),u.removeEventListener("pointercancel",y),l&&(u.removeEventListener("contextmenu",Ti,!0),u.removeEventListener("touchmove",Ti))};u.addEventListener("pointermove",g),u.addEventListener("pointerup",y),u.addEventListener("pointercancel",y)},o=s=>{s.stopPropagation()};return i.addEventListener("pointerdown",a),i.addEventListener("touchstart",o),()=>{i.removeEventListener("pointerdown",a),i.removeEventListener("touchstart",o)}},[e,t,r])}function uv(e){let t=P.useContext(xt),r=P.useCallback(i=>{t.dragManager.isHTMLDragging?(i.preventDefault(),t.dragManager.dragMoveHTML(i)):t.dragManager.dragStartHTML(i,e.getAView().id),t.dragManager.onHTMLDragLeave(()=>{t.dragManager.dragEndHTML(i,e.getAView().id,[],!0)})},[t,e]),n=P.useCallback(async i=>{t.dragManager.dragEndHTML(i,e.getAView().id,await us(e,i,activeWindow),!1)},[t,e]);return{onDragOver:r,onDrop:n}}m();var fv=me(Et());m();var dv=me(require("obsidian"));function _t({name:e,className:t}){return h("span",{"data-icon":e,className:`${B("icon")} ${t||""}`,ref:r=>{r&&(0,dv.setIcon)(r,e)}})}var pv=P.memo(function({shouldMarkItemsComplete:t,path:r,item:n,stateManager:i,boardModifiers:a}){let o=i.useSetting("show-checkboxes"),[s,u]=P.useState(!1),[l,c]=P.useState(!1);return P.useEffect(()=>{if(l){let d=f=>{f.metaKey||f.ctrlKey?u(!0):u(!1)};return window.addEventListener("keydown",d),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",d),window.removeEventListener("keyup",d)}}},[l]),t||o?h("div",{onMouseEnter:d=>{c(!0),(d.ctrlKey||d.metaKey)&&u(!0)},onMouseLeave:()=>{c(!1),s&&u(!1)},className:B("item-prefix-button-wrapper")},o&&!s&&h("input",{onChange:()=>{a.updateItem(r,(0,fv.default)(n,{data:{$toggle:["isComplete"]}}))},type:"checkbox",className:"task-list-item-checkbox",checked:!!n.data.isComplete}),(s||!o&&t)&&h("a",{onClick:()=>{a.archiveItem(r)},className:`${B("item-prefix-button")} clickable-icon`,"aria-label":s?void 0:"Archive card"},h(_t,{name:"sheets-in-box"}))):null});m();var qy=me(require("obsidian"));m();var mv=me(require("obsidian"));m();var Ou;function hv(e){if(e.nodeName!=="TEXTAREA")return!1;if(typeof Ou=="undefined"){let t=e.doc.createElement("textarea");t.value=1,Ou=!!t.firstChild}return Ou}function Da(e,t){var i;e.focus();let r=e.doc;if(!r.execCommand("insertText",!1,t)){let a=e.selectionStart,o=e.selectionEnd;if(typeof e.setRangeText=="function")e.setRangeText(t);else{let u=r.createRange(),l=r.createTextNode(t);if(hv(e)){let c=e.firstChild;if(!c)e.appendChild(l);else{let d=0,f=null,p=null;for(;c&&(f===null||p===null);){let g=((i=c.nodeValue)==null?void 0:i.length)||0;a>=d&&a<=d+g&&u.setStart(f=c,a-d),o>=d&&o<=d+g&&u.setEnd(p=c,o-d),d+=g,c=c.nextSibling}a!==o&&u.deleteContents()}}if(hv(e)&&u.commonAncestorContainer.nodeName==="#text")u.insertNode(l);else{let c=e.value;e.value=c.slice(0,a)+t+c.slice(o)}}e.setSelectionRange(a+t.length,a+t.length);let s=r.createEvent("UIEvent");s.initEvent("input",!0,!1),e.dispatchEvent(s)}}var Ru=e=>e.charCodeAt(0)===10,gv=e=>e===" "||Ru(e);function vS(e,t,r){if(!e)throw Error("Argument 'text' should be truthy");let n=0,i=e.length;for(let a=t;a-1>-1;a--)if(Ru(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a-1;a--)if(gv(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a0&&e.value[a.selection.start-1]!==" ")return!1;if(a.selection.end===a.selection.start){let s=Lt(e,`${r}`);return Pt(e,{start:s.selection.end-1-a.selectedText.length,end:s.selection.end-1}),!1}let o=Lt(e,`${t}${a.selectedText}${r}`);return Pt(e,{start:o.selection.end-1-a.selectedText.length,end:o.selection.end-1}),!0}function ys(e,t,r,n){let i=On(e),a=Ii({text:i.text,selection:i.selection}),o=Pt(e,a),s=t.test(o.selectedText)?n(o.selectedText):r(o.selectedText),u=Lt(e,s);Pt(e,{start:o.selection.start,end:u.selection.end})}function bs(e,t){var r;if(t.types.includes("text/uri-list")||["file","files","link","folder"].includes((r=e.app.dragManager.draggable)==null?void 0:r.type))return"link";if(t.types.includes("text/html")||t.types.includes("text/plain"))return"copy"}async function ws(e,t,r){let n=e.clipboardData.getData("text/html"),i=e.clipboardData.types.includes("Files"),a=mv.Platform.isDesktopApp?Lu(r):null,o=n||i||(a==null?void 0:a.length)>0;o&&e.preventDefault();try{let s=await us(t,e,r);if(o){let u=e.target,l=s.join(` +`);Lt(u,l)}}catch(s){console.error(s),t.setError(s)}}m();var fd=me(require("obsidian"));m();m();var vv={};m();var yv={};m();var bv={};m();var wv={"Open as kanban board":"\xD6ffne als Kanban-Board","Create new board":"Erstelle ein neues Board","Archive completed cards in active board":"Archiviere fertiggestellte Karten im aktiven Board","Error: current file is not a Kanban board":"Fehler: Momentan ge\xF6ffnete Datei ist kein Kanban-Board","Convert empty note to Kanban":"Konvertiere leere Notiz in ein Kanban-Board","Error: cannot create Kanban, the current note is not empty":"Fehler: Kanban konnte nicht erstellt werden, momentan ge\xF6ffnete Datei ist nicht leer","New kanban board":"Neues Kanban-Board","Untitled Kanban":"Unbenanntes Kanban","Toggle between Kanban and markdown mode":"Wechsle zwischen Kanban und Markdown Modus","Open as markdown":"\xD6ffne als Markdown","Open board settings":"\xD6ffne Board-Einstellungen","Archive completed cards":"Archiviere fertiggestellte Karten","Something went wrong":"Etwas ist schief gelaufen","You may wish to open as markdown and inspect or edit the file.":"Du kannst die Datei im Markdown Modus \xF6ffnen und \xFCberpr\xFCfen oder bearbeiten.","Are you sure you want to archive all completed cards on this board?":"Bist du dir sicher, dass du alle fertiggestellten Karten des Boards archivieren m\xF6chtest?",Complete:"Fertiggestellt",Archive:"Archiv","Invalid Kanban file: problems parsing frontmatter":"Fehlerhafte Kanban Datei: Probleme beim Parsen des Frontmatters","I don't know how to interpret this line:":"Ich wei\xDF nicht, wie ich diese Zeile interpretieren soll:",Untitled:"Unbenannt","Note: No template plugins are currently enabled.":"Beachte: Keine Template-Plugins sind derzeit aktiviert.",default:"Standard","Search...":"Suche...","These settings will take precedence over the default Kanban board settings.":"Diese Einstellung wird Vorrang vor der standard Kanban-Board Einstellung haben. ","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Stelle standard Kanban-Board Einstellungen ein. Einstellungen k\xF6nnen auf einer Board-f\xFCr-Board Basis \xFCberschrieben werden.","Note template":"Notiz Vorlage","This template will be used when creating new notes from Kanban cards.":"Diese Vorlage wird beim Erstellen neuer Notizen aus Kanban-Karten verwendet.","No template":"Keine Vorlage","Note folder":"Notiz Ordner","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notizen, welche aus einer Kanban-Karte erstellt wurden, werden in diesem Ordner platziert. Falls leer, werden die Einstellungen des Vaults verwendet.","Default folder":"Standard Ordner","Lane width":"Schienen Breite","Enter a number to set the lane width in pixels.":"Gebe ein Zahl ein, um die Schienen Breite in Pixeln einzustellen.","Maximum number of archived cards":"Maximale Anzahl archivierter Karten.","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archivierte Karten k\xF6nnen im Markdown-Modus betrachtet werden. Diese Einstellung wird alte Karten l\xF6schen, sobald das Limit erreicht wird. Eine Einstellung von -1 setzt das Archiv auf eine unendliche Gr\xF6\xDFe.","Display card checkbox":"Zeige Karten Checkbox","When toggled, a checkbox will be displayed with each card":"Wenn aktiviert, wird eine Checkbox mit jeder Karte angezeigt.","Reset to default":"Zur\xFCcksetzen","Date & Time":"Datum & Uhrzeit","Date trigger":"Datums Ausl\xF6ser","When this is typed, it will trigger the date selector":"Wenn dies eingegeben wird, dann wird die Datumsauswahl angezeigt","Time trigger":"Uhrzeit Ausl\xF6ser","When this is typed, it will trigger the time selector":"Wenn dies eingegeben wird, dann wird die Uhrzeitsauswahl angezeigt","Date format":"Format des Datums","This format will be used when saving dates in markdown.":"Dieses Format wird verwendet, wenn ein Datum in Markdown gespeichert wird.","For more syntax, refer to":"F\xFCr mehr Syntax Informationen siehe","format reference":"Formatvorlage","Your current syntax looks like this":"Dein momentanes Format sieht so aus","Time format":"Format der Uhrzeit","Date display format":"Format der Datums Anzeige","This format will be used when displaying dates in Kanban cards.":"Dieses Format wird verwendet, wenn ein Datum in einer Kanban-Karte angezeigt wird.","Show relative date":"Zeige relatives Datum","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Wenn aktiviert, wird die Zeitspanne zwischen Heute und dem Datum angezeigt. Zum Beispiel: 'In 3 Tagen', 'Vor einem Monat'","Hide card display dates":"Verstecke Karten Datum","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Wenn aktiviert, werden formatierte Daten nicht auf der Karte angezeigt. Relative Daten werden dennoch angezeigt, solange sie aktiviert sind.","Hide dates in card titles":"Verstecke Daten im Titel der Karte","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Wenn aktiviert, werden Daten nicht im Titel der Karte angezeigt. Dies verhindert, dass Daten im Titel neu erstellter Notizen vorhanden sind.","Link dates to daily notes":"Verbinde Daten zu Daily Notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Wenn aktiviert, werden Daten mit Daily Notes verbunden. Zum Beispiel [[26.4.2021]]","Add date and time to archived cards":"F\xFCge Datum und Uhrzeit zu archivierten Notizen hinzu","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Wenn aktiviert, wird das momentane Datum und die momentane Zeit am Anfang einer Karte hinzugef\xFCgt, wenn sie archiviert wird. Zum Beispiel: - [ ] 14.05.2021 10:00 Mein Karten Titel","Archive date/time separator":"Datum/Uhrzeit Trenner f\xFCr das Archiv","This will be used to separate the archived date/time from the title":"Dies wird verwendet, um das Datum und die Uhrzeit archivierter Karten vom Titel zu trennen","Archive date/time format":"Format des Datums und der Uhrzeit f\xFCr das Archiv","Kanban Plugin":"Kanban Erweiterung","New line trigger":"Taste f\xFCr neue Zeile","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"W\xE4hle aus ob Enter oder Umschalttaste+Enter eine neue Zeile erstellen soll. Das Gegenteil kannst du verwenden um die Karte zu erstellen oder das bearbeiten der Karte oder Schiene zu beenden.","Shift + Enter":"Umschalttaste + Enter",Enter:"Enter","Prepend / append new cards":"Neue Karten voranf\xFCgen / anh\xE4ngen","This setting controls whether new cards are added to the beginning or end of the list.":"Diese Einstellung gibt an ob neue Karten am Anfang oder am Ende einer Liste hinzugef\xFCgt werden.",Prepend:"Voranf\xFCgen",Append:"Anh\xE4ngen","Hide tags in card titles":"Ausblenden von Tags in Kartentiteln","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Ist diese Einstellung an, so werden Tags im Kartentitel nicht angezeigt. Dadurch wird verhindert, dass Tags beim Erstellen neuer Notizen in den Titel aufgenommen werden.","Hide card display tags":"Ausblenden von Kartenanzeige-Tags","When toggled, tags will not be displayed below the card title.":"Ist diese Einstellung an, werden Tags nicht unter dem Kartentitel angezeigt.","Linked Page Metadata":"Metadaten f\xFCr verkn\xFCpfte (verlinkte) Notizen","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Zeigen Sie Metadaten f\xFCr die erste Notiz an, die innerhalb einer Karte verkn\xFCpft ist. Geben Sie an, welche Metadatenschl\xFCssel unten angezeigt werden sollen. Ein optionales Label kann hinzugef\xFCgt werden, es kann aber auch vollst\xE4ndig ausgeblendet werden.","Metadata key":"Metadatenschl\xFCssel","Display label":"Anzeigelabel","Hide label":"Label ausblenden","Drag to rearrange":"Zum Neuanordnen ziehen",Delete:"L\xF6schen","Add key":"Schl\xFCssel hinzuf\xFCgen","Field contains markdown":"Feld beinhaltet Markdown","More options":"Mehr optionen",Cancel:"Abbrechen",today:"heute",yesterday:"gestern",tomorrow:"morgen","Change date":"Ver\xE4ndere Datum","Change time":"Ver\xE4ndere Uhrzeit","Card title...":"Karten Titel...","Add card":"Karte hinzuf\xFCgen","Add a card":"F\xFCge eine Karte hinzu","Edit card":"Karte editieren","New note from card":"Neue Notiz aus Karte erstellen","Archive card":"Karte archivieren","Delete card":"Karte l\xF6schen","Edit date":"Datum editieren","Add date":"Datum hinzuf\xFCgen","Remove date":"Datum entfernen","Edit time":"Karte editieren","Add time":"Uhrzeit hinzuf\xFCgen","Remove time":"Uhrzeit entfernen","Duplicate card":"Karte duplizieren","Enter list title...":"Listen Titel eingeben..","Mark cards in this list as complete":"Markiere Karten in dieser Liste als fertiggestellt","Add list":"Liste hinzuf\xFCgen","Add a list":"F\xFCge eine Liste hinzu","Move list":"Liste verschieben",Close:"Schlie\xDFen","Are you sure you want to delete this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten l\xF6schen m\xF6chtest?","Yes, delete list":"Ja, l\xF6sche diese Liste","Are you sure you want to archive this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten archivieren m\xF6chtest?","Yes, archive list":"Ja, archiviere diese Liste","Are you sure you want to archive all cards in this list?":"Bist du dir sicher, dass du alle Karten in dieser Liste archivieren m\xF6chtest?","Yes, archive cards":"Ja, archiviere Karten","Edit list":"Editiere Liste","Archive cards":"Archiviere Karten","Archive list":"Archiviere List","Delete list":"L\xF6sche Liste"};m();var Hu={"Open as kanban board":"Open as kanban board","Create new board":"Create new board","Archive completed cards in active board":"Archive completed cards in active board","Error: current file is not a Kanban board":"Error: current file is not a Kanban board","Convert empty note to Kanban":"Convert empty note to Kanban","Error: cannot create Kanban, the current note is not empty":"Error: cannot create Kanban, the current note is not empty","New kanban board":"New kanban board","Untitled Kanban":"Untitled Kanban","Toggle between Kanban and markdown mode":"Toggle between Kanban and markdown mode","Open as markdown":"Open as markdown","Open board settings":"Open board settings","Archive completed cards":"Archive completed cards","Something went wrong":"Something went wrong","You may wish to open as markdown and inspect or edit the file.":"You may wish to open as markdown and inspect or edit the file.","Are you sure you want to archive all completed cards on this board?":"Are you sure you want to archive all completed cards on this board?",Complete:"Complete",Archive:"Archive","Invalid Kanban file: problems parsing frontmatter":"Invalid Kanban file: problems parsing frontmatter","I don't know how to interpret this line:":"I don't know how to interpret this line:",Untitled:"Untitled","Note: No template plugins are currently enabled.":"Note: No template plugins are currently enabled.",default:"default","Search...":"Search...","New line trigger":"New line trigger","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.":"Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"Prepend / append new cards","This setting controls whether new cards are added to the beginning or end of the list.":"This setting controls whether new cards are added to the beginning or end of the list.",Prepend:"Prepend","Prepend (compact)":"Prepend (compact)",Append:"Append","These settings will take precedence over the default Kanban board settings.":"These settings will take precedence over the default Kanban board settings.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.","Note template":"Note template","This template will be used when creating new notes from Kanban cards.":"This template will be used when creating new notes from Kanban cards.","No template":"No template","Note folder":"Note folder","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.","Default folder":"Default folder","List width":"List width","Enter a number to set the list width in pixels.":"Enter a number to set the list width in pixels.","Maximum number of archived cards":"Maximum number of archived cards","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.","Display card checkbox":"Display card checkbox","When toggled, a checkbox will be displayed with each card":"When toggled, a checkbox will be displayed with each card","Reset to default":"Reset to default","Date & Time":"Date & Time","Date trigger":"Date trigger","When this is typed, it will trigger the date selector":"When this is typed, it will trigger the date selector","Time trigger":"Time trigger","When this is typed, it will trigger the time selector":"When this is typed, it will trigger the time selector","Date format":"Date format","This format will be used when saving dates in markdown.":"This format will be used when saving dates in markdown.","For more syntax, refer to":"For more syntax, refer to","format reference":"format reference","Your current syntax looks like this":"Your current syntax looks like this","Time format":"Time format","Date display format":"Date display format","This format will be used when displaying dates in Kanban cards.":"This format will be used when displaying dates in Kanban cards.","Show relative date":"Show relative date","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'","Hide card display dates":"Hide card display dates","Hide card counts in list titles":"Hide card counts in list titles","When toggled, card counts are hidden from the list title":"When toggled, card counts are hidden from the list title","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.","Hide dates in card titles":"Hide dates in card titles","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.","Link dates to daily notes":"Link dates to daily notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"When toggled, dates will link to daily notes. Eg. [[2021-04-26]]","Add date and time to archived cards":"Add date and time to archived cards","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title","Archive date/time separator":"Archive date/time separator","This will be used to separate the archived date/time from the title":"This will be used to separate the archived date/time from the title","Archive date/time format":"Archive date/time format","Kanban Plugin":"Kanban Plugin","Hide tags in card titles":"Hide tags in card titles","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.","Hide card display tags":"Hide card display tags","When toggled, tags will not be displayed below the card title.":"When toggled, tags will not be displayed below the card title.","Display tag colors":"Display tag colors","Set colors for the tags displayed below the card title.":"Set colors for the tags displayed below the card title.","Linked Page Metadata":"Linked Page Metadata","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.","Board Header Buttons":"Board Header Buttons","Calendar: first day of week":"Calendar: first day of week","Override which day is used as the start of the week":"Override which day is used as the start of the week",Sunday:"Sunday",Monday:"Monday",Tuesday:"Tuesday",Wednesday:"Wednesday",Thursday:"Thursday",Friday:"Friday",Saturday:"Saturday","Background color":"Background color",Tag:"Tag","Text color":"Text color","Date is":"Date is",Today:"Today","After now":"After now","Before now":"Before now","Between now and":"Between now and","Display date colors":"Display date colors","Set colors for the date displayed below the card based on the rules below":"Set colors for the date displayed below the card based on the rules below","Add date color":"Add date color","Metadata key":"Metadata key","Display label":"Display label","Hide label":"Hide label","Drag to rearrange":"Drag to rearrange",Delete:"Delete","Add key":"Add key","Field contains markdown":"Field contains markdown","Add tag color":"Add tag color","More options":"More options",Cancel:"Cancel",today:"today",yesterday:"yesterday",tomorrow:"tomorrow","Change date":"Change date","Change time":"Change time","Card title...":"Card title...","Add card":"Add card","Add a card":"Add a card","Edit card":"Edit card","New note from card":"New note from card","Archive card":"Archive card","Delete card":"Delete card","Edit date":"Edit date","Add date":"Add date","Remove date":"Remove date","Edit time":"Edit time","Add time":"Add time","Remove time":"Remove time","Duplicate card":"Duplicate card","Split card":"Split card","Copy link to card":"Copy link to card","Insert card before":"Insert card before","Insert card after":"Insert card after","Add label":"Add label","Move to top":"Move to top","Move to bottom":"Move to bottom","Enter list title...":"Enter list title...","Mark cards in this list as complete":"Mark cards in this list as complete","Add list":"Add list","Add a list":"Add a list","Move list":"Move list",Close:"Close","Are you sure you want to delete this list and all its cards?":"Are you sure you want to delete this list and all its cards?","Yes, delete list":"Yes, delete list","Are you sure you want to archive this list and all its cards?":"Are you sure you want to archive this list and all its cards?","Yes, archive list":"Yes, archive list","Are you sure you want to archive all cards in this list?":"Are you sure you want to archive all cards in this list?","Yes, archive cards":"Yes, archive cards","Edit list":"Edit list","Archive cards":"Archive cards","Archive list":"Archive list","Delete list":"Delete list","Insert list before":"Insert list before","Insert list after":"Insert list after","Sort by card text":"Sort by card text","Sort by date":"Sort by date","Unable to find":"Unable to find","Open in default app":"Open in default app",Submit:"Submit"};m();var Ev={};m();var kv={};m();var xv={};m();var Sv={};m();var _v={"Open as kanban board":"Apri come bacheca Kanban","Create new board":"Crea nuova bacheca","Archive completed cards in active board":"Archivia schede completate nella bacheca attiva","Error: current file is not a Kanban board":"Errore: il file corrente non \xE8 una bacheca Kanban","Convert empty note to Kanban":"Converti nota vuota in Kanban","Error: cannot create Kanban, the current note is not empty":"Errore: Impossibile creare Kanban, la nota corrente non \xE8 vuota","New kanban board":"Nuova bacheca Kanban","Untitled Kanban":"Kanban senza titolo","Open as markdown":"Apri come markdown","Open board settings":"Apri impostazioni bacheca","Archive completed cards":"Archivia schede completate",Complete:"Completato",Archive:"Archivio","Note: No template plugins are currently enabled.":"Nota: Nessun plugin dei modelli attualmente abilitato.",default:"predefinito","Search...":"Ricerca...","These settings will take precedence over the default Kanban board settings.":"Queste impostazioni avranno la precedenza sulle impostazioni predefinite della bacheca Kanban.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Impostazioni predefinite della bacheca Kanban. Le impostazioni possono essere sovrascritte per ogni bacheca.","Note template":"Nota modello","This template will be used when creating new notes from Kanban cards.":"Questo modello verr\xE0 utilizzato durante la creazione di nuove note dalle schede Kanban.","No template":"Nessun modello","Note folder":"Cartella delle note","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Le note create dalle schede Kanban verranno inserite in questa cartella. Se vuota, verranno inserite nella posizione predefinita del vault.","Default folder":"Cartella predefinita","Lane width":"Larghezza colonna","Enter a number to set the lane width in pixels.":"Inserire un numero per impostare la larghezza della colonna in pixel.","Maximum number of archived cards":"Numero massimo di schede archiviate","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Le schede archiviate possono essere visualizzate in modalit\xE0 Markdown. Le vecchie schede verranno rimosse una volta raggiunto il limite. Impostando il valore -1 il numero di schede archiviate sar\xE0 illimitato.","Display card checkbox":"Mostra casella di controllo","When toggled, a checkbox will be displayed with each card":"Se attiva, verr\xE0 visualizzata una casella di controllo per ogni scheda","Reset to default":"Ripristina predefiniti","Date & Time":"Data e ora","Date trigger":"Selettore data","When this is typed, it will trigger the date selector":"Digitando questo, verr\xE0 attivato il selettore della data","Time trigger":"Selettore ora","When this is typed, it will trigger the time selector":"Digitando questo, verr\xE0 attivato il selettore dell'ora","Date format":"Formato data","This format will be used when saving dates in markdown.":"Formato utilizzato per il salvataggio delle date in Markdown.","For more syntax, refer to":"Per maggiori informazioni, vedere","format reference":"formato di riferimento","Your current syntax looks like this":"Formato corrente","Time format":"Formato ora","Date display format":"Formato visualizzazione data","This format will be used when displaying dates in Kanban cards.":"Formato utilizzato per visualizzare le date nelle schede Kanban.","Show relative date":"Mostra data relativa","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Se attiva, le schede indicheranno la distanza tra la data odierna e la data della scheda. eg. 'Tra 3 giorni', 'Un mese fa'","Hide card display dates":"Hide card display dates","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Se attiva, la data non verr\xE0 mostrata sulla scheda. Le date relative verranno comunque mostrate se sono state abilitate.","Hide dates in card titles":"Nascondi date nei titoli delle schede","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Se attiva, la data non verr\xE0 mostrata nei titoli delle schede. Questo impedisce alle date di essere incluse quando vengono create nuove note.","Link dates to daily notes":"Collega date alle Note del giorno","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Se attiva, le date verranno collegate alle Note del giorno. Eg. [[2021-04-26]]","Add date and time to archived cards":"Aggiungi data e ora alle schede archiviate","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Se attiva, la data e l'ora corrente verranno aggiunte all'inizio della scheda quando viene archiviata. Eg. - [ ] 2021-05-14 10:00am Mia scheda","Archive date/time separator":"Separatore data/ora dell'archivio","This will be used to separate the archived date/time from the title":"Verr\xE0 usato per separare data e ora dell'archiviazione dal titolo","Archive date/time format":"Formato data/ora dell'archivio","Kanban Plugin":"Plugin Kanban","More options":"Altre opzioni",Cancel:"Annulla",today:"oggi",yesterday:"ieri",tomorrow:"domani","Change date":"Modifica data","Change time":"Modifica ora","Card title...":"Titolo elemento...","Add card":"Aggiungi elemento","Add a card":"Aggiungi un'altra scheda","Edit card":"Modifica scheda","New note from card":"Nuova nota da scheda","Archive card":"Archivia scheda","Delete card":"Elimina scheda","Edit date":"Modifica data","Add date":"Aggiungi data","Remove date":"Rimuovi data","Edit time":"Modifica ora","Add time":"Aggiungi ora","Remove time":"Rimuovi ora","Enter list title...":"Inserisci titolo lista...","Mark cards in this list as complete":"Segna elementi della lista come completati","Add list":"Aggiungi lista","Add a list":"Aggiungi un'altra lista","Move list":"Sposta lista",Close:"Chiudi","Are you sure you want to delete this list and all its cards?":"Cancellare questa lista e tutte le sue schede?","Yes, delete list":"Cancella lista","Are you sure you want to archive this list and all its cards?":"Archiviare questa lista e tutte le sue schede?","Yes, archive list":"Archivia lista","Are you sure you want to archive all cards in this list?":"Archiviare tutte le schede in questa lista?","Yes, archive cards":"Archivia schede","Edit list":"Modifica lista","Archive cards":"Archivia schede","Archive list":"Archivia lista","Delete list":"Cancella lista"};m();var Cv={"Open as kanban board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3068\u3057\u3066\u958B\u304F","Create new board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210","Archive completed cards in active board":"\u30A2\u30AF\u30C6\u30A3\u30D6\u30DC\u30FC\u30C9\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Error: current file is not a Kanban board":"\u30A8\u30E9\u30FC: \u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3067\u306F\u3042\u308A\u307E\u305B\u3093","Convert empty note to Kanban":"\u7A7A\u306E\u30CE\u30FC\u30C8\u3092\u30AB\u30F3\u30D0\u30F3\u306B\u5909\u63DB","Error: cannot create Kanban, the current note is not empty":"\u30A8\u30E9\u30FC: \u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u30CE\u30FC\u30C8\u306F\u7A7A\u3067\u3042\u308A\u3001\u30AB\u30F3\u30D0\u30F3\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093","New kanban board":"\u65B0\u898F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9","Untitled Kanban":"\u7121\u984C\u306E\u30AB\u30F3\u30D0\u30F3","Toggle between Kanban and markdown mode":"\u30AB\u30F3\u30D0\u30F3\u3068\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u306E\u30E2\u30FC\u30C9\u3092\u5207\u308A\u66FF\u3048\u308B","Open as markdown":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u958B\u304F","Open board settings":"\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u958B\u304F","Archive completed cards":"\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Something went wrong":"\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F","You may wish to open as markdown and inspect or edit the file.":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3044\u3066\u8ABF\u67FB\u3059\u308B\u304B\u7DE8\u96C6\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002","Are you sure you want to archive all completed cards on this board?":"\u3053\u306E\u30DC\u30FC\u30C9\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F",Complete:"\u5B8C\u4E86",Archive:"\u30A2\u30FC\u30AB\u30A4\u30D6","Invalid Kanban file: problems parsing frontmatter":"\u7121\u52B9\u306A\u30AB\u30F3\u30D0\u30F3\u30D5\u30A1\u30A4\u30EB: \u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306E\u30D1\u30FC\u30B9\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059","I don't know how to interpret this line:":"\u3053\u306E\u884C\u3092\u3069\u3046\u89E3\u91C8\u3059\u308C\u3070\u3088\u3044\u304B\u5206\u304B\u308A\u307E\u305B\u3093",Untitled:"\u7121\u984C","Note: No template plugins are currently enabled.":"\u30CE\u30FC\u30C8: \u73FE\u5728\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059",default:"\u30C7\u30D5\u30A9\u30EB\u30C8","Search...":"\u691C\u7D22\u2026","New line trigger":"\u6539\u884C\u30C8\u30EA\u30AC\u30FC","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"\u6539\u884C\u306B\u4F7F\u3046\u30AD\u30FC\u3068\u3057\u3066Enter\u304BShift+Enter\u306E\u3069\u3061\u3089\u3092\u4F7F\u3046\u304B\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u9078\u629E\u3057\u306A\u304B\u3063\u305F\u65B9\u306E\u30AD\u30FC\u306F\u30AB\u30FC\u30C9\u3068\u30EC\u30FC\u30F3\u306E\u4F5C\u6210\u3068\u7DE8\u96C6\u5B8C\u4E86\u306E\u30C8\u30EA\u30AC\u30FC\u3068\u306A\u308A\u307E\u3059\u3002","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0\u3059\u308B","This setting controls whether new cards are added to the beginning or end of the list.":"\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u3063\u3066\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u306E\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u8FFD\u52A0\u3059\u308B\u304B\u3092\u6C7A\u3081\u307E\u3059\u3002",Prepend:"\u5148\u982D\u306B\u8FFD\u52A0","Prepend (compact)":"\u5148\u982D\u306B\u8FFD\u52A0(\u30B3\u30F3\u30D1\u30AF\u30C8)",Append:"\u672B\u5C3E\u306B\u8FFD\u52A0","These settings will take precedence over the default Kanban board settings.":"\u3053\u308C\u3089\u306E\u8A2D\u5B9A\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u8A2D\u5B9A\u3088\u308A\u512A\u5148\u3055\u308C\u307E\u3059\u3002","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u30BB\u30C3\u30C8\u3057\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u30DC\u30FC\u30C9\u6BCE\u306B\u4E0A\u66F8\u304D\u3067\u304D\u307E\u3059\u3002","Note template":"\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8","This template will be used when creating new notes from Kanban cards.":"\u3053\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210\u3057\u305F\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","No template":"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u3042\u308A\u307E\u305B\u3093","Note folder":"\u30CE\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u4F5C\u6210\u3055\u308C\u305F\u30CE\u30FC\u30C8\u306F\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u5185\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002\u30D6\u30E9\u30F3\u30AF\u306E\u5834\u5408\u306B\u306F\u3001\u3053\u306E\u4FDD\u7BA1\u5EAB\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002","Default folder":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30EB\u30C0","Lane width":"\u30EC\u30FC\u30F3\u306E\u5E45","Enter a number to set the lane width in pixels.":"\u30EC\u30FC\u30F3\u306E\u5E45\u3092\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","Maximum number of archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306E\u6700\u5927\u6570","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u30E2\u30FC\u30C9\u3067\u95B2\u89A7\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u308A\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u9650\u754C\u6570\u307E\u3067\u9054\u3057\u305F\u969B\u306B\u306F\u53E4\u3044\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u5024\u3092-1\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u30DC\u30FC\u30C9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u9650\u754C\u3092\u7121\u9650\u306B\u3057\u307E\u3059\u3002","Display card checkbox":"\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u8868\u793A","When toggled, a checkbox will be displayed with each card":"\u6709\u52B9\u5316\u3059\u308B\u3068\u5404\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","Reset to default":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u30EA\u30BB\u30C3\u30C8","Date & Time":"\u65E5\u4ED8\u3068\u6642\u9593","Date trigger":"\u65E5\u4ED8\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the date selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u65E5\u4ED8\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Time trigger":"\u6642\u9593\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the time selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u6642\u9593\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Date format":"\u65E5\u4ED8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when saving dates in markdown.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3067\u65E5\u4ED8\u304C\u4FDD\u5B58\u3055\u308C\u308B\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","For more syntax, refer to":"\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306B\u3064\u3044\u3066\u306F\u3053\u3061\u3089\u3092\u53C2\u7167:","format reference":"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9","Your current syntax looks like this":"\u73FE\u5728\u306E\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306F\u6B21\u306E\u3088\u3046\u306B\u898B\u3048\u307E\u3059","Time format":"\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","Date display format":"\u65E5\u4ED8\u8868\u793A\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when displaying dates in Kanban cards.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u5185\u306B\u3066\u65E5\u4ED8\u306E\u8868\u793A\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Show relative date":"\u76F8\u5BFE\u65E5\u4ED8\u3092\u8868\u793A","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u306E\u65E5\u4ED8\u3068\u4ECA\u65E5\u306E\u9593\u306E\u65E5\u6570\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B: '3\u65E5\u5F8C', '1\u30F6\u6708\u524D'","Hide card display dates":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u4E0A\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3055\u308C\u305F\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u6709\u52B9\u5316\u3055\u308C\u305F\u5834\u5408\u306B\u306F\u76F8\u5BFE\u65E5\u4ED8\u306F\u8868\u793A\u3055\u308C\u307E\u307E\u3068\u306A\u308A\u307E\u3059\u3002","Hide dates in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u65E5\u4ED8\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Link dates to daily notes":"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u65E5\u4ED8\u3092\u30EA\u30F3\u30AF","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u6709\u52B9\u5316\u3059\u308B\u3068\u65E5\u4ED8\u304C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u30EA\u30F3\u30AF\u3055\u308C\u307E\u3059\u3002 \u4F8B: [[2021-04-26]]","Add date and time to archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306B\u65E5\u4ED8\u3068\u6642\u9593\u3092\u8FFD\u52A0","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u304C\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u969B\u306B\u73FE\u5728\u306E\u65E5\u4ED8\u3068\u6642\u9593\u304C\u30AB\u30FC\u30C9\u306E\u6700\u521D\u306B\u8FFD\u8A18\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\u4F8B: - [ ] 2021-05-14 10:00am \u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB","Archive date/time separator":"\u65E5\u4ED8\u30FB\u6642\u9593\u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","This will be used to separate the archived date/time from the title":"\u3053\u308C\u306F\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u65E5\u4ED8\u30FB\u6642\u9593\u3092\u30BF\u30A4\u30C8\u30EB\u304B\u3089\u5206\u96E2\u3059\u308B\u306E\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Archive date/time format":"\u65E5\u4ED8\u30FB\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Kanban Plugin":"\u30AB\u30F3\u30D0\u30F3\u30D7\u30E9\u30B0\u30A4\u30F3","Hide tags in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u30BF\u30B0\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Hide card display tags":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will not be displayed below the card title.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u4E0B\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","Linked Page Metadata":"\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30DA\u30FC\u30B8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u30AB\u30FC\u30C9\u5185\u3067\u30EA\u30F3\u30AF\u3055\u308C\u3066\u3044\u308B\u6700\u521D\u306E\u30CE\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4E0B\u306B\u8868\u793A\u3059\u308B\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u30E9\u30D9\u30EB\u306E\u4ED8\u4E0E\u304C\u53EF\u80FD\u3067\u3042\u308A\u3001\u30E9\u30D9\u30EB\u306F\u5B8C\u5168\u306B\u975E\u8868\u793A\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","Board Header Buttons":"\u30DC\u30FC\u30C9\u306E\u30D8\u30C3\u30C0\u30FC\u30DC\u30BF\u30F3","Calendar: first day of week":"\u30AB\u30EC\u30F3\u30C0\u30FC: \u9031\u306E\u59CB\u307E\u308A","Override which day is used as the start of the week":"\u9031\u306E\u59CB\u307E\u308A\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u66DC\u65E5\u3092\u5909\u66F4\u3057\u307E\u3059\u3002",Sunday:"\u65E5\u66DC\u65E5",Monday:"\u6708\u66DC\u65E5",Tuesday:"\u706B\u66DC\u65E5",Wednesday:"\u6C34\u66DC\u65E5",Thursday:"\u6728\u66DC\u65E5",Friday:"\u91D1\u66DC\u65E5",Saturday:"\u571F\u66DC\u65E5","Metadata key":"\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC","Display label":"\u30E9\u30D9\u30EB\u3092\u8868\u793A","Hide label":"\u30E9\u30D9\u30EB\u3092\u96A0\u3059","Drag to rearrange":"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E26\u3079\u66FF\u3048\u308B",Delete:"\u524A\u9664","Add key":"\u30AD\u30FC\u3092\u8FFD\u52A0","Field contains markdown":"\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3092\u542B\u307F\u307E\u3059","More options":"\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3",Cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",today:"\u4ECA\u65E5",yesterday:"\u6628\u65E5",tomorrow:"\u660E\u65E5","Change date":"\u65E5\u4ED8\u3092\u5909\u66F4","Change time":"\u6642\u9593\u3092\u5909\u66F4","Card title...":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u2026","Add card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Add a card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Edit card":"\u30AB\u30FC\u30C9\u3092\u7DE8\u96C6","New note from card":"\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210","Archive card":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete card":"\u30AB\u30FC\u30C9\u3092\u524A\u9664","Edit date":"\u65E5\u4ED8\u3092\u7DE8\u96C6","Add date":"\u65E5\u4ED8\u3092\u8FFD\u52A0","Remove date":"\u65E5\u4ED8\u3092\u524A\u9664","Edit time":"\u6642\u9593\u3092\u7DE8\u96C6","Add time":"\u6642\u9593\u3092\u8FFD\u52A0","Remove time":"\u6642\u9593\u3092\u524A\u9664","Duplicate card":"\u30AB\u30FC\u30C9\u3092\u8907\u88FD","Split card":"\u30AB\u30FC\u30C9\u3092\u5206\u5272","Copy link to card":"\u30AB\u30FC\u30C9\u3078\u306E\u30EA\u30F3\u30AF\u3092\u30B3\u30D4\u30FC","Enter list title...":"\u30EA\u30B9\u30C8\u30BF\u30A4\u30C8\u30EB\u3092\u7DE8\u96C6\u2026","Mark cards in this list as complete":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u30AB\u30FC\u30C9\u3092\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3059\u308B","Add list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Add a list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Move list":"\u30EA\u30B9\u30C8\u3092\u79FB\u52D5",Close:"\u9589\u3058\u308B","Are you sure you want to delete this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u304B\b\uFF1F","Yes, delete list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059","Are you sure you want to archive this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Are you sure you want to archive all cards in this list?":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive cards":"\u306F\u3044\u3001\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Edit list":"\u30EA\u30B9\u30C8\u3092\u7DE8\u96C6","Archive cards":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Archive list":"\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete list":"\u30EA\u30B9\u30C8\u3092\u524A\u9664","Unable to find":"\u898B\u3064\u304B\u308A\u307E\u305B\u3093","Open in default app":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30A2\u30D7\u30EA\u3067\u958B\u304F"};m();var Dv={};m();var Tv={};m();var Mv={};m();var Iv={};m();var Av={};m();var Lv={"Open as Kanban board":"Abrir como quadro Kanban","Create new board":"Criar um novo quadro","Archive completed cards in active board":"Arquivar cart\xF5es conclu\xEDdos no quadro ativo","Error: current file is not a Kanban board":"Erro: o arquivo atual n\xE3o \xE9 um quadro Kanban","Convert empty note to Kanban":"Converter nota vazia em Kanban","Error: cannot create Kanban, the current note is not empty":"Erro: n\xE3o \xE9 poss\xEDvel criar o quadro Kanban, a nota atual n\xE3o est\xE1 vazia","New Kanban board":"Novo quadro Kanban","Untitled Kanban":"Kanban sem t\xEDtulo","Toggle between Kanban and markdown mode":"Alternar entre os modos Kanban e Markdown","Open as markdown":"Abrir como markdown","Open board settings":"Abrir configura\xE7\xF5es do quadro Kanban","Archive completed cards":"Arquivar cart\xF5es conclu\xEDdos",Complete:"Conclu\xEDdo",Archive:"Arquivado","Note: No template plugins are currently enabled.":"Nota: N\xE3o h\xE1 plug-ins de modelo habilitados no momento.",default:"padr\xE3o","Search...":"Pesquisar...","These settings will take precedence over the default Kanban board settings.":"Essas configura\xE7\xF5es sobrescrever\xE3o as configura\xE7\xF5es padr\xE3o do quadro Kanban","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Defina as configura\xE7\xF5es padr\xE3o do quadro Kanban. Cada quadro Kanban pode ter sua pr\xF3pria configura\xE7\xE3o.","Note template":"Modelo de nota","This template will be used when creating new notes from Kanban cards.":"Este modelo ser\xE1 usado quando uma nova nota Kanban for criada.","No template":"Sem modelo","Note folder":"Pasta de notas","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"As notas criadas pelos links dos cart\xF5es Kanban ser\xE3o colocadas nesta pasta. Se estiver em branco, ser\xE3o colocadas no local configurado como padr\xE3o deste cofre.","Default folder":"Pasta padr\xE3o","Lane width":"Largura das listas","Enter a number to set the lane width in pixels.":"Insira um n\xFAmero para definir a largura das listas em pixels.","Maximum number of archived cards":"Quantidade m\xE1xima de cart\xF5es arquivados","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Os cart\xF5es arquivados podem ser vistos no modo Markdown. Esta configura\xE7\xE3o excluir\xE1 os cart\xF5es antigos assim que o limite for atingido. Inserir o valor -1 retira o limite para cart\xF5es arquivados.","Display card checkbox":"Exibe uma caixa de sele\xE7\xE3o do cart\xE3o","When toggled, a checkbox will be displayed with each card":"Quando ativada, uma caixa de sele\xE7\xE3o ser\xE1 exibida em cada cart\xE3o.","Reset to default":"Redefinir configura\xE7\xF5es padr\xE3o","Date & Time":"Data e Hora","Date trigger":"Gatilho de data","When this is typed, it will trigger the date selector":"Quando este caractere \xE9 digitado, o seletor de data \xE9 exibido.","Time trigger":"Gatilho de hora","When this is typed, it will trigger the time selector":"Quando este caractere \xE9 digitado, o seletor de hora \xE9 exibido.","Date format":"Formado da data","This format will be used when saving dates in markdown.":"Este formato ser\xE1 usado quando datas forem armazenadas no Markdown.","For more syntax, refer to":"Para mais informa\xE7\xF5es sobre esta sintaxe, consulte os","format reference":"modelos de formato.","Your current syntax looks like this":"Sua atual sintaxe est\xE1 assim","Time format":"Formato da hora","Date display format":"Formato de exibi\xE7\xE3o da data","This format will be used when displaying dates in Kanban cards.":"Este ser\xE1 o formato das datas exibido nos cart\xF5es do Kanban.","Show relative date":"Exibir datas relativas","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Ao ativar, os cart\xF5es exibir\xE3o o intervalo de tempo entre hoje e a data do cart\xE3o: Ex.: 'Em 3 dias', 'Um m\xEAs atr\xE1s'","Hide card display dates":"Ocultar datas dos cart\xF5es","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Ao ativar, as datas formatadas n\xE3o ser\xE3o exibidas no cart\xE3o. As datas relativas ainda ser\xE3o exibidas se estiverem ativadas.","Hide dates in card titles":"Ocultar datas dos t\xEDtulos dos cart\xF5es","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Ao ativar, as datas ser\xE3o t\xEDtulos de cart\xF5es ocultos. Evita que datas sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Link dates to daily notes":"Vincular datas a notas di\xE1rias","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Ao ativar, as datas ser\xE3o vinculadas \xE0s notas di\xE1rias. Ex.: [[2021-04-26]]","Add date and time to archived cards":"Adicionar data e hora aos cart\xF5es arquivados","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Quando ativada, a data e a hora atuais ser\xE3o adicionadas ao in\xEDcio de um cart\xE3o quando ele for arquivado. Ex.: - [] 2021-05-14 10:00 T\xEDtulo do meu cart\xE3o","Archive date/time separator":"Separador de data/hora do arquivo","This will be used to separate the archived date/time from the title":"Isso ser\xE1 usado para separar a data/hora arquivada do t\xEDtulo.","Archive date/time format":"Formato de data/hora do arquivo","Kanban Plugin":"Plugin Kanban","Hide tags in card titles":"Ocultar \u2018tags\u2019 nos t\xEDtulos dos cart\xF5es","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas nos t\xEDtulos de cartas. Isso impedir\xE1 que as \u2018tags\u2019 sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Hide card display tags":"Ocultar \u2018tags\u2019 de exibi\xE7\xE3o de cart\xE3o","When toggled, tags will not be displayed below the card title.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas abaixo do t\xEDtulo do cart\xE3o.","Linked Page Metadata":"Metadados de p\xE1ginas 'lincadas'","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Exibe metadados para a primeira nota 'lincada' em um cart\xE3o. Especifique abaixo quais metadados ser\xE3o exibidos. Um r\xF3tulo opcional pode ser fornecido e os r\xF3tulos podem ser ocultados completamente.","Metadata key":"Metadado","Display label":"Descri\xE7\xE3o personalizada","Hide label":"Ocultar","Drag to rearrange":"Arraste para reorganizar",Delete:"Excluir","Add key":"Adicionar metadado","More options":"Mais op\xE7\xF5es",Cancel:"Cancelar",today:"hoje",yesterday:"ontem",tomorrow:"amanh\xE3","Change date":"Alterar data","Change time":"Mudar hora","Card title...":"T\xEDtulo do item...","Add card":"Adicionar Item","Add a card":"Adicione um cart\xE3o","Edit card":"Editar cart\xE3o","New note from card":"Nova nota do cart\xE3o","Archive card":"Arquivar cart\xE3o","Delete card":"Excluir cart\xE3o","Edit date":"Editar data","Add date":"Adicionar data","Remove date":"Remover data","Edit time":"Editar hora","Add time":"Adicionar hora","Remove time":"Remover hora","Duplicate card":"Duplicate card","Enter list title...":"Insira o t\xEDtulo da lista...","Mark cards in this list as complete":"Marcar os itens nesta lista como conclu\xEDdos","Add list":"Adicionar lista","Add a list":"Adicionar uma lista","Move list":"Mover lista",Close:"Fechar","Are you sure you want to delete this list and all its cards?":"Tem certeza de que deseja excluir esta lista e todos os seus cart\xF5es?","Yes, delete list":"Sim, excluir esta lista","Are you sure you want to archive this list and all its cards?":"Tem certeza de que deseja arquivar esta lista e todos os seus cart\xF5es?","Yes, archive list":"Sim, arquivar esta lista","Are you sure you want to archive all cards in this list?":"Tem certeza de que deseja arquivar todos os cart\xF5es desta lista?","Yes, archive cards":"Sim, arquivar cart\xF5es","Edit list":"Editar lista","Archive cards":"Arquivar cart\xF5es","Archive list":"Arquivar lista","Delete list":"Excluir lista"};m();var Pv={};m();var Fv={};m();var Nv={};m();var Es={};m();var Ov={"Open as kanban board":"\u6253\u5F00\u4E3A\u770B\u677F","Create new board":"\u521B\u5EFA\u65B0\u770B\u677F","Archive completed cards in active board":"\u5728\u5F53\u524D\u770B\u677F\u4E2D\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Error: current file is not a Kanban board":"\u9519\u8BEF\uFF1A\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u770B\u677F\u6587\u4EF6","Convert empty note to Kanban":"\u8F6C\u6362\u7A7A\u767D\u7B14\u8BB0\u4E3A\u770B\u677F","Error: cannot create Kanban, the current note is not empty":"\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8F6C\u6362\u5F53\u524D\u6587\u4EF6\uFF0C\u5F53\u524D\u7B14\u8BB0\u4E0D\u662F\u7A7A\u767D\u7B14\u8BB0","New kanban board":"\u65B0\u770B\u677F","Untitled Kanban":"\u672A\u547D\u540D\u770B\u677F","Toggle between Kanban and markdown mode":"\u5728\u770B\u677F\u548C Markdown \u6A21\u5F0F\u4E4B\u95F4\u8FDB\u884C\u5207\u6362","Open as markdown":"\u6253\u5F00\u4E3A Markdown \u6587\u4EF6","Open board settings":"\u6253\u5F00\u770B\u677F\u8BBE\u7F6E","Archive completed cards":"\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Something went wrong":"\u51FA\u4E86\u70B9\u95EE\u9898","You may wish to open as markdown and inspect or edit the file.":"\u4F60\u53EF\u80FD\u5E0C\u671B\u4EE5 Markdown \u65B9\u5F0F\u6253\u5F00\uFF0C\u5E76\u68C0\u67E5\u6216\u7F16\u8F91\u8BE5\u6587\u4EF6\u3002","Are you sure you want to archive all completed cards on this board?":"\u4F60\u786E\u5B9A\u8981\u5C06\u8FD9\u4E2A\u677F\u5757\u4E0A\u6240\u6709\u5DF2\u5B8C\u6210\u7684\u5361\u7247\u5F52\u6863\u5417\uFF1F",Complete:"\u5B8C\u6210",Archive:"\u5F52\u6863","Invalid Kanban file: problems parsing frontmatter":"\u65E0\u6548\u7684\u770B\u677F\u6587\u4EF6\uFF1A\u89E3\u6790 frontmatter \u65F6\u51FA\u73B0\u95EE\u9898","I don't know how to interpret this line:":"\u6211\u4E0D\u77E5\u9053\u5982\u4F55\u89E3\u8BFB\u8FD9\u53E5\u8BDD\uFF1A",Untitled:"\u672A\u547D\u540D","Note: No template plugins are currently enabled.":"\u6CE8\u610F\uFF1A\u5F53\u524D\u6CA1\u6709\u542F\u7528\u6A21\u677F\u63D2\u4EF6",default:"\u9ED8\u8BA4","Search...":"\u641C\u7D22\u2026\u2026","New line trigger":"\u6362\u884C\u89E6\u53D1\u5668","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.":"\u9009\u62E9 Enter \u6216\u662F Shift+Enter \u6765\u521B\u5EFA\u65B0\u884C, \u672A\u9009\u7528\u7684\u5FEB\u6377\u952E\u5C06\u88AB\u7528\u4E8E\u521B\u5EFA\u5361\u7247\u548C\u5217\uFF0C\u4EE5\u53CA\u5B8C\u6210\u5361\u7247\u3001\u5217\u7684\u7F16\u8F91\u3002","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"\u8FFD\u52A0\u65B0\u5361\u7247","This setting controls whether new cards are added to the beginning or end of the list.":"\u8BBE\u7F6E\u65B0\u5361\u7247\u8FFD\u52A0\u5230\u5217\u5934\u90E8\u6216\u5C3E\u90E8\u3002",Prepend:"\u5934\u90E8","Prepend (compact)":"\u5934\u90E8 (\u7D27\u51D1)",Append:"\u5C3E\u90E8","These settings will take precedence over the default Kanban board settings.":"\u5F53\u524D\u770B\u677F\u8BBE\u7F6E\u5C06\u4F1A\u8986\u76D6\u9ED8\u8BA4\u7684\u770B\u677F\u8BBE\u7F6E\u3002","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u66F4\u6539\u9ED8\u8BA4\u7684\u770B\u677F\u8BBE\u7F6E\u3002\u4E3A\u6BCF\u4E2A\u770B\u677F\u5355\u72EC\u8FDB\u884C\u8BBE\u7F6E\u5C06\u8986\u76D6\u9ED8\u8BA4\u8BBE\u7F6E\u3002","Note template":"\u7B14\u8BB0\u6A21\u677F","This template will be used when creating new notes from Kanban cards.":"\u4ECE\u770B\u677F\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u65F6\u4F1A\u4F7F\u7528\u8BE5\u6A21\u677F\u3002","No template":"\u6CA1\u6709\u6A21\u677F","Note folder":"\u7B14\u8BB0\u5B58\u653E\u4F4D\u7F6E","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u4ECE\u770B\u677F\u5361\u7247\u521B\u5EFA\u7684\u7B14\u8BB0\u4F1A\u653E\u7F6E\u5230\u8BE5\u6587\u4EF6\u5939\u4E2D\u3002\u5982\u679C\u4E3A\u7A7A\uFF0C\u7B14\u8BB0\u5C06\u4F1A\u653E\u7F6E\u5230 Obsidian \u7684\u9ED8\u8BA4\u6587\u4EF6\u5B58\u653E\u4F4D\u7F6E\u3002","Default folder":"\u9ED8\u8BA4\u6587\u4EF6\u5939","List width":"\u5217\u5BBD","Enter a number to set the list width in pixels.":"\u8F93\u5165\u4E00\u4E2A\u50CF\u7D20\u503C\u6765\u8BBE\u7F6E\u5217\u7684\u5BBD\u5EA6","Maximum number of archived cards":"\u5355\u4E2A\u770B\u677F\u5185\u5DF2\u5F52\u6863\u5361\u7247\u7684\u6700\u5927\u6570\u91CF","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u5DF2\u5F52\u6863\u5361\u7247\u53EF\u4EE5\u5728 Markdown \u6A21\u5F0F\u4E0B\u67E5\u770B\u3002\u8BE5\u8BBE\u7F6E\u5C06\u4F7F\u5DF2\u5F52\u6863\u5361\u7247\u5728\u8FBE\u5230\u6700\u5927\u6570\u91CF\u65F6\u5220\u9664\u65E7\u5361\u3002\u8BBE\u7F6E\u4E3A -1 \u53EF\u4EE5\u6C38\u4E45\u4FDD\u7559\u6240\u6709\u5F52\u6863\u5361\u7247\u3002","Display card checkbox":"\u5C55\u793A\u5361\u7247\u590D\u9009\u6846","When toggled, a checkbox will be displayed with each card":"\u6253\u5F00\u65F6\uFF0C\u590D\u9009\u6846\u4F1A\u51FA\u73B0\u5728\u6BCF\u5F20\u5361\u7247\u4E0A","Reset to default":"\u8FD8\u539F\u521D\u59CB\u8BBE\u7F6E","Date & Time":"\u65E5\u671F\u548C\u65F6\u95F4","Date trigger":"\u65E5\u671F\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the date selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65E5\u671F\u9009\u62E9\u5668","Time trigger":"\u65F6\u95F4\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the time selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65F6\u95F4\u9009\u62E9\u5668","Date format":"\u65E5\u671F\u683C\u5F0F","This format will be used when saving dates in markdown.":"\u8FD9\u4E2A\u683C\u5F0F\u4F1A\u5728\u65E5\u671F\u4FDD\u5B58\u5230 Markdown \u683C\u5F0F\u65F6\u4F7F\u7528\u3002","For more syntax, refer to":"\u66F4\u591A\u683C\u5F0F\uFF0C\u8BF7\u67E5\u770B","format reference":"\u683C\u5F0F\u53C2\u8003","Your current syntax looks like this":"\u4F60\u5F53\u524D\u8BBE\u7F6E\u7684\u683C\u5F0F\u4F1A\u662F","Time format":"\u65F6\u95F4\u683C\u5F0F","Date display format":"\u65E5\u671F\u5C55\u793A\u683C\u5F0F","This format will be used when displaying dates in Kanban cards.":"\u770B\u677F\u5361\u7247\u4F1A\u4EE5\u8BE5\u683C\u5F0F\u5C55\u793A\u65E5\u671F\u3002","Show relative date":"\u5C55\u793A\u76F8\u5BF9\u65E5\u671F","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u4F1A\u5C55\u793A\u5176\u6240\u8BBE\u65E5\u671F\u4E0E\u5F53\u524D\u65E5\u671F\u7684\u5DEE\u503C\uFF0C\u4F8B\u5982\u201C3\u5929\u5185\u201D\u201C\u4E00\u4E2A\u6708\u524D\u201D\u7B49","Hide card display dates":"\u9690\u85CF\u5361\u7247\u65E5\u671F","Hide card counts in list titles":"\u5728\u5217\u6807\u9898\u4E0A\u9690\u85CF\u5361\u7247\u8BA1\u6570","When toggled, card counts are hidden from the list title":"\u6253\u5F00\u65F6\uFF0C\u5217\u6807\u9898\u4E0A\u7684\u5361\u7247\u8BA1\u6570\u5C06\u9690\u85CF","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u6253\u5F00\u65F6\uFF0C\u683C\u5F0F\u5316\u65E5\u671F\u4E0D\u4F1A\u5728\u5361\u7247\u4E0A\u5C55\u793A\u3002\u5982\u679C\u5F00\u542F\u4E86\u76F8\u5BF9\u65E5\u671F\u529F\u80FD\uFF0C\u76F8\u5BF9\u65E5\u671F\u8FD8\u662F\u4F1A\u7EE7\u7EED\u5C55\u793A\u3002","Hide dates in card titles":"\u5728\u5361\u7247\u6807\u9898\u4E2D\u9690\u85CF\u65E5\u671F","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u65E5\u671F\u5C06\u4F1A\u9690\u85CF\u3002\u5F53\u57FA\u4E8E\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u65F6\u53EF\u4EE5\u907F\u514D\u65E5\u671F\u6DF7\u6742\u5176\u4E2D\u3002","Link dates to daily notes":"\u94FE\u63A5\u65E5\u671F\u5230\u65E5\u8BB0","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u6253\u5F00\u65F6\uFF0C\u65E5\u671F\u4F1A\u81EA\u52A8\u94FE\u63A5\u5230\u65E5\u8BB0\u9875\u9762\uFF0C\u4F8B\u5982[[2021-04-26]]","Add date and time to archived cards":"\u6DFB\u52A0\u65E5\u671F\u548C\u65F6\u95F4\u5230\u5F52\u6863\u5361\u7247","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u6253\u5F00\u65F6\uFF0C\u5F53\u524D\u65E5\u671F\u548C\u65F6\u95F4\u4F1A\u88AB\u6DFB\u52A0\u5230\u5F52\u6863\u5361\u7247\u7684 frontmatter \u4E0A\uFF0C\u4F8B\u5982\u201C- [ ] 2021-05-14 10:00am \u6211\u7684\u5361\u7247\u6807\u9898\u201D","Archive date/time separator":"\u5F52\u6863\u65E5\u671F\u6216\u65F6\u95F4\u5206\u9694\u7B26Archive date/time separator","This will be used to separate the archived date/time from the title":"\u7528\u4E8E\u5206\u9694\u6807\u9898\u4E0E\u5F52\u6863\u5361\u7247\u7684\u65E5\u671F\u6216\u65F6\u95F4","Archive date/time format":"\u5F52\u6863\u65E5\u671F\u6216\u65F6\u95F4\u683C\u5F0F","Kanban Plugin":"\u770B\u677F\u63D2\u4EF6","Hide tags in card titles":"\u9690\u85CF\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E\u5C06\u4F1A\u88AB\u9690\u85CF\u3002\u5F53\u57FA\u4E8E\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u65F6\u53EF\u4EE5\u907F\u514D\u6807\u7B7E\u6DF7\u6742\u5176\u4E2D\u3002","Hide card display tags":"\u9690\u85CF\u5361\u7247\u4E0A\u7684\u6807\u7B7E","When toggled, tags will not be displayed below the card title.":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u6807\u9898\u4E0B\u65B9\u7684\u6807\u7B7E\u5C06\u4E0D\u4F1A\u5C55\u793A\u3002","Linked Page Metadata":"\u8FDE\u63A5\u7684\u9875\u9762\u5143\u6570\u636E","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u5C55\u793A\u5361\u7247\u4E2D\u7B2C\u4E00\u4E2A\u8FDE\u63A5\u6240\u5BF9\u5E94\u7684\u7B14\u8BB0\u5143\u6570\u636E\u3002\u8BF7\u5728\u4E0B\u65B9\u6307\u5B9A\u54EA\u4E9B\u5143\u6570\u636E\u53EF\u4EE5\u5C55\u793A\u3002\u4F60\u53EF\u4EE5\u9009\u62E9\u5C55\u793A\u54EA\u4E9B\u6807\u5FD7\uFF0C\u6240\u6709\u6807\u5FD7\u90FD\u53EF\u4EE5\u88AB\u9690\u85CF\u3002","Board Header Buttons":"\u677F\u5934\u6309\u94AE","Calendar: first day of week":"\u65E5\u5386\uFF1A\u4E00\u5468\u7684\u7B2C\u4E00\u5929","Override which day is used as the start of the week":"\u8BBE\u7F6E\u54EA\u4E00\u5929\u4F5C\u4E3A\u4E00\u5468\u7684\u5F00\u59CB",Sunday:"\u5468\u65E5",Monday:"\u5468\u4E00",Tuesday:"\u5468\u4E8C",Wednesday:"\u5468\u4E09",Thursday:"\u5468\u56DB",Friday:"\u5468\u4E94",Saturday:"\u5468\u516D","Metadata key":"\u5143\u6570\u636E\u53C2\u6570\u540D","Display label":"\u5C55\u793A\u6807\u5FD7","Hide label":"\u9690\u85CF\u6807\u5FD7","Drag to rearrange":"\u62D6\u52A8\u4EE5\u91CD\u6392\u987A\u5E8F",Delete:"\u5220\u9664","Add key":"\u6DFB\u52A0\u53C2\u6570\u540D","Field contains markdown":"\u5B57\u6BB5\u5305\u542B Markdown","More options":"\u66F4\u591A\u9009\u9879",Cancel:"\u53D6\u6D88",today:"\u4ECA\u5929",yesterday:"\u6628\u5929",tomorrow:"\u660E\u5929","Change date":"\u66F4\u6539\u65E5\u671F","Change time":"\u66F4\u6539\u65F6\u95F4","Card title...":"\u5361\u7247\u6807\u9898\u2026\u2026","Add card":"\u6DFB\u52A0","Add a card":"\u6DFB\u52A0\u5361\u7247","Edit card":"\u7F16\u8F91\u5361\u7247","New note from card":"\u4ECE\u5361\u7247\u65B0\u5EFA\u7B14\u8BB0","Archive card":"\u5F52\u6863\u5361\u7247","Delete card":"\u5220\u9664\u5361\u7247","Edit date":"\u7F16\u8F91\u65E5\u671F","Add date":"\u6DFB\u52A0\u65E5\u671F","Remove date":"\u79FB\u9664\u65E5\u671F","Edit time":"\u7F16\u8F91\u65F6\u95F4","Add time":"\u6DFB\u52A0\u65F6\u95F4","Remove time":"\u79FB\u9664\u65F6\u95F4","Duplicate card":"\u590D\u5236\u5361\u7247","Split card":"\u5206\u79BB\u5361\u7247","Copy link to card":"\u590D\u5236\u94FE\u63A5\u81F3\u5361\u7247","Insert card before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5361\u7247","Insert card after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5361\u7247","Move to top":"\u79FB\u5230\u9876\u90E8","Move to bottom":"\u79FB\u81F3\u5E95\u90E8","Enter list title...":"\u8F93\u5165\u65B0\u7684\u5217\u6807\u9898\u2026\u2026","Mark cards in this list as complete":"\u5C06\u8BE5\u5217\u8BBE\u7F6E\u4E3A\u5B8C\u6210\u5217","Add list":"\u6DFB\u52A0","Add a list":"\u6DFB\u52A0\u5217","Move list":"\u79FB\u52A8\u5217",Close:"\u5173\u95ED","Are you sure you want to delete this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5220\u9664\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, delete list":"\u662F\uFF0C\u5220\u9664\u5217","Are you sure you want to archive this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5F52\u6863\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive list":"\u662F, \u5F52\u6863\u5217","Are you sure you want to archive all cards in this list?":"\u4F60\u786E\u8BA4\u4F60\u8981\u5F52\u6863\u5F53\u524D\u5217\u7684\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive cards":"\u662F\uFF0C\u5F52\u6863\u6240\u6709\u5361\u7247","Edit list":"\u7F16\u8F91\u5217","Archive cards":"\u5F52\u6863\u5361\u7247","Archive list":"\u5F52\u6863\u5217","Delete list":"\u5220\u9664\u5217","Insert list before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5217","Insert list after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5217","Sort by card text":"\u4EE5\u5361\u7247\u6587\u672C\u6392\u5E8F","Sort by date":"\u4EE5\u65E5\u671F\u6392\u5E8F","Unable to find":"\u65E0\u6CD5\u627E\u5230","Open in default app":"\u5728\u9ED8\u8BA4\u5E94\u7528\u4E2D\u6253\u5F00",Submit:"\u63D0\u4EA4"};m();var Rv={};var wS={ar:vv,cz:yv,da:bv,de:wv,en:Hu,es:Ev,fr:kv,hi:xv,id:Sv,it:_v,ja:Cv,ko:Dv,nl:Tv,no:Mv,pl:Iv,"pt-BR":Lv,pt:Av,ro:Pv,ru:Fv,sq:Nv,tr:Es,uk:Es,"zh-TW":Rv,zh:Ov},Hv=window.localStorage.getItem("language"),Bu=wS[Hv||"en"];function L(e){return Bu||console.error("Error: kanban locale not found",Hv),Bu&&Bu[e]||Hu[e]}m();m();function Gn(e){return Array.isArray?Array.isArray(e):$v(e)==="[object Array]"}var ES=1/0;function kS(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-ES?"-0":t}function xS(e){return e==null?"":kS(e)}function Rn(e){return typeof e=="string"}function Bv(e){return typeof e=="number"}function SS(e){return e===!0||e===!1||_S(e)&&$v(e)=="[object Boolean]"}function Kv(e){return typeof e=="object"}function _S(e){return Kv(e)&&e!==null}function un(e){return e!=null}function Ku(e){return!e.trim().length}function $v(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var CS="Incorrect 'index' type",DS=e=>`Invalid value for key ${e}`,TS=e=>`Pattern length exceeds max of ${e}.`,MS=e=>`Missing ${e} property in key`,IS=e=>`Property 'weight' in key '${e}' must be a positive integer`,Uv=Object.prototype.hasOwnProperty,Vv=class{constructor(t){this._keys=[],this._keyMap={};let r=0;t.forEach(n=>{let i=Wv(n);r+=i.weight,this._keys.push(i),this._keyMap[i.id]=i,r+=i.weight}),this._keys.forEach(n=>{n.weight/=r})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function Wv(e){let t=null,r=null,n=null,i=1,a=null;if(Rn(e)||Gn(e))n=e,t=zv(e),r=$u(e);else{if(!Uv.call(e,"name"))throw new Error(MS("name"));let o=e.name;if(n=o,Uv.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(IS(o));t=zv(o),r=$u(o),a=e.getFn}return{path:t,id:r,weight:i,src:n,getFn:a}}function zv(e){return Gn(e)?e:e.split(".")}function $u(e){return Gn(e)?e.join("."):e}function AS(e,t){let r=[],n=!1,i=(a,o,s)=>{if(!!un(a))if(!o[s])r.push(a);else{let u=o[s],l=a[u];if(!un(l))return;if(s===o.length-1&&(Rn(l)||Bv(l)||SS(l)))r.push(xS(l));else if(Gn(l)){n=!0;for(let c=0,d=l.length;ce.score===t.score?e.idx{this._keysMap[r.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Rn(this.docs[0])?this.docs.forEach((t,r)=>{this._addString(t,r)}):this.docs.forEach((t,r)=>{this._addObject(t,r)}),this.norm.clear())}add(t){let r=this.size();Rn(t)?this._addString(t,r):this._addObject(t,r)}removeAt(t){this.records.splice(t,1);for(let r=t,n=this.size();r{let o=i.getFn?i.getFn(t):this.getFn(t,i.path);if(!!un(o)){if(Gn(o)){let s=[],u=[{nestedArrIndex:-1,value:o}];for(;u.length;){let{nestedArrIndex:l,value:c}=u.pop();if(!!un(c))if(Rn(c)&&!Ku(c)){let d={v:c,i:l,n:this.norm.get(c)};s.push(d)}else Gn(c)&&c.forEach((d,f)=>{u.push({nestedArrIndex:f,value:d})})}n.$[a]=s}else if(Rn(o)&&!Ku(o)){let s={v:o,n:this.norm.get(o)};n.$[a]=s}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}};function jv(e,t,{getFn:r=_e.getFn,fieldNormWeight:n=_e.fieldNormWeight}={}){let i=new ks({getFn:r,fieldNormWeight:n});return i.setKeys(e.map(Wv)),i.setSources(t),i.create(),i}function HS(e,{getFn:t=_e.getFn,fieldNormWeight:r=_e.fieldNormWeight}={}){let{keys:n,records:i}=e,a=new ks({getFn:t,fieldNormWeight:r});return a.setKeys(n),a.setIndexRecords(i),a}function xs(e,{errors:t=0,currentLocation:r=0,expectedLocation:n=0,distance:i=_e.distance,ignoreLocation:a=_e.ignoreLocation}={}){let o=t/e.length;if(a)return o;let s=Math.abs(n-r);return i?o+s/i:s?1:o}function BS(e=[],t=_e.minMatchCharLength){let r=[],n=-1,i=-1,a=0;for(let o=e.length;a=t&&r.push([n,i]),n=-1)}return e[a-1]&&a-n>=t&&r.push([n,a-1]),r}var Wr=32;function KS(e,t,r,{location:n=_e.location,distance:i=_e.distance,threshold:a=_e.threshold,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,includeMatches:u=_e.includeMatches,ignoreLocation:l=_e.ignoreLocation}={}){if(t.length>Wr)throw new Error(TS(Wr));let c=t.length,d=e.length,f=Math.max(0,Math.min(n,d)),p=a,g=f,y=s>1||u,b=y?Array(d):[],x;for(;(x=e.indexOf(t,g))>-1;){let K=xs(t,{currentLocation:x,expectedLocation:f,distance:i,ignoreLocation:l});if(p=Math.min(K,p),g=x+c,y){let z=0;for(;z=Z;Q-=1){let ie=Q-1,he=r[e.charAt(ie)];if(y&&(b[ie]=+!!he),se[Q]=(se[Q+1]<<1|1)&he,K&&(se[Q]|=(T[Q+1]|T[Q])<<1|1|T[Q+1]),se[Q]&H&&(C=xs(t,{errors:K,currentLocation:ie,expectedLocation:f,distance:i,ignoreLocation:l}),C<=p)){if(p=C,g=ie,g<=f)break;Z=Math.max(1,2*f-g)}}if(xs(t,{errors:K+1,currentLocation:f,expectedLocation:f,distance:i,ignoreLocation:l})>p)break;T=se}let D={isMatch:g>=0,score:Math.max(.001,C)};if(y){let K=BS(b,s);K.length?u&&(D.indices=K):D.isMatch=!1}return D}function $S(e){let t={};for(let r=0,n=e.length;r{this.chunks.push({pattern:f,alphabet:$S(f),startIndex:p})},d=this.pattern.length;if(d>Wr){let f=0,p=d%Wr,g=d-p;for(;f{let{isMatch:x,score:T,indices:C}=KS(t,g,y,{location:i+b,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:u,includeMatches:n,ignoreLocation:l});x&&(f=!0),d+=T,x&&C&&(c=[...c,...C])});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&n&&(p.indices=c),p}},Qn=class{constructor(t){this.pattern=t}static isMultiMatch(t){return qv(t,this.multiRegex)}static isSingleMatch(t){return qv(t,this.singleRegex)}search(){}};function qv(e,t){let r=e.match(t);return r?r[1]:null}var Yv=class extends Qn{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){let r=t===this.pattern;return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},Jv=class extends Qn{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){let n=t.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}},Gv=class extends Qn{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){let r=t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},Qv=class extends Qn{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){let r=!t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},Xv=class extends Qn{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){let r=t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},Zv=class extends Qn{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){let r=!t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},Vu=class extends Qn{constructor(t,{location:r=_e.location,threshold:n=_e.threshold,distance:i=_e.distance,includeMatches:a=_e.includeMatches,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,isCaseSensitive:u=_e.isCaseSensitive,ignoreLocation:l=_e.ignoreLocation}={}){super(t);this._bitapSearch=new Uu(t,{location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:u,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}},Wu=class extends Qn{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let r=0,n,i=[],a=this.pattern.length;for(;(n=t.indexOf(this.pattern,r))>-1;)r=n+a,i.push([n,r-1]);let o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}},zu=[Yv,Wu,Gv,Qv,Zv,Xv,Jv,Vu],ey=zu.length,US=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,VS="|";function WS(e,t={}){return e.split(VS).map(r=>{let n=r.trim().split(US).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(e[Ss.AND]||e[Ss.OR]),qS=e=>!!e[Yu.PATH],YS=e=>!Gn(e)&&Kv(e)&&!Ju(e),ny=e=>({[Ss.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function ry(e,t,{auto:r=!0}={}){let n=i=>{let a=Object.keys(i),o=qS(i);if(!o&&a.length>1&&!Ju(i))return n(ny(i));if(YS(i)){let u=o?i[Yu.PATH]:a[0],l=o?i[Yu.PATTERN]:i[u];if(!Rn(l))throw new Error(DS(u));let c={keyId:$u(u),pattern:l};return r&&(c.searcher=qu(l,t)),c}let s={children:[],operator:a[0]};return a.forEach(u=>{let l=i[u];Gn(l)&&l.forEach(c=>{s.children.push(n(c))})}),s};return Ju(e)||(e=ny(e)),n(e)}function JS(e,{ignoreFieldNorm:t=_e.ignoreFieldNorm}){e.forEach(r=>{let n=1;r.matches.forEach(({key:i,norm:a,score:o})=>{let s=i?i.weight:null;n*=Math.pow(o===0&&s?Number.EPSILON:o,(s||1)*(t?1:a))}),r.score=n})}function GS(e,t){let r=e.matches;t.matches=[],!!un(r)&&r.forEach(n=>{if(!un(n.indices)||!n.indices.length)return;let{indices:i,value:a}=n,o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),t.matches.push(o)})}function QS(e,t){t.score=e.score}function XS(e,t,{includeMatches:r=_e.includeMatches,includeScore:n=_e.includeScore}={}){let i=[];return r&&i.push(GS),n&&i.push(QS),e.map(a=>{let{idx:o}=a,s={item:t[o],refIndex:o};return i.length&&i.forEach(u=>{u(a,s)}),s})}var mn=class{constructor(t,r={},n){this.options={..._e,...r},this.options.useExtendedSearch,this._keyStore=new Vv(this.options.keys),this.setCollection(t,n)}setCollection(t,r){if(this._docs=t,r&&!(r instanceof ks))throw new Error(CS);this._myIndex=r||jv(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){!un(t)||(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){let r=[];for(let n=0,i=this._docs.length;n-1&&(u=u.slice(0,r)),XS(u,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(t){let r=qu(t,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:s})=>{if(!un(a))return;let{isMatch:u,score:l,indices:c}=r.searchIn(a);u&&i.push({item:a,idx:o,matches:[{score:l,value:a,norm:s,indices:c}]})}),i}_searchLogical(t){let r=ry(t,this.options),n=(s,u,l)=>{if(!s.children){let{keyId:d,searcher:f}=s,p=this._findMatches({key:this._keyStore.get(d),value:this._myIndex.getValueForItemAtKeyId(u,d),searcher:f});return p&&p.length?[{idx:l,item:u,matches:p}]:[]}let c=[];for(let d=0,f=s.children.length;d{if(un(s)){let l=n(r,s,u);l.length&&(a[u]||(a[u]={idx:u,item:s,matches:[]},o.push(a[u])),l.forEach(({matches:c})=>{a[u].matches.push(...c)}))}}),o}_searchObjectList(t){let r=qu(t,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:s})=>{if(!un(o))return;let u=[];n.forEach((l,c)=>{u.push(...this._findMatches({key:l,value:o[c],searcher:r}))}),u.length&&a.push({idx:s,item:o,matches:u})}),a}_findMatches({key:t,value:r,searcher:n}){if(!un(r))return[];let i=[];if(Gn(r))r.forEach(({v:a,i:o,n:s})=>{if(!un(a))return;let{isMatch:u,score:l,indices:c}=n.searchIn(a);u&&i.push({score:l,key:t,value:a,idx:o,norm:s,indices:c})});else{let{v:a,n:o}=r,{isMatch:s,score:u,indices:l}=n.searchIn(a);s&&i.push({score:u,key:t,value:a,norm:o,indices:l})}return i}};mn.version="6.6.2";mn.createIndex=jv;mn.parseIndex=HS;mn.config=_e;mn.parseQuery=ry;jS(ty);var Sy=me(require("obsidian"));m();var iy=me(require("obsidian"));function _s(e,t,r){let n=r.getSetting("date-format"),i=r.getSetting("link-date-to-daily-note"),a=(0,iy.moment)(e).format(n),o=i?Yo(r.app,a):`{${a}}`;Lt(t.current,o),t.current.focus()}function ay({div:e,inputRef:t,cb:r,stateManager:n}){e.createEl("input",{type:"text"},i=>{e.win.setTimeout(()=>r(as(i,{now:new Date,locale:Xo(n),inline:!0,onChange:a=>{_s(a[0],t,n)},win:i.win})))})}function Gu(e,t){let r=t.clientHeight,n=t.clientWidth,i=Ze(t);e.top+r>i.innerHeight&&(t.style.top=`${(e.clientTop||0)-r}px`),e.left+n>i.innerWidth&&(t.style.left=`${(e.left||0)-n}px`)}function oy(e){let t=e.getSetting("time-trigger"),r=new RegExp(`\\B${Ln(t)}{?([^}]*)$`),n=Au(e);return{id:"time",match:r,index:1,search:(i,a)=>{a(i?n.filter(o=>o.startsWith(i)):n)},template:i=>i,replace:i=>`${t}{${i}} `}}function sy(e){let t=e.month(),r=e.clone().startOf("month").weekday(0),n=e.diff(r,"week");e.subtract(1,"month").startOf("month").weekday(6).add(n,"week");let i=e.month();for(;t===i;)e.subtract(1,"week"),i=e.month();return e}function ly(e){let t=e.month(),r=e.clone().startOf("month").weekday(6),n=e.diff(r,"week");e.add(1,"month").startOf("month").weekday(0).add(n,"week");let i=e.month();for(;t===i;)e.add(1,"week"),i=e.month();return e}m();var cy=me(require("obsidian"));var ZS=/\B\[\[([^\]]*)$/,e_=/\B!\[\[([^\]]*)$/,t_=/\B\[\[([^#\]]+)#([^\]]*)$/,n_=/\B!\[\[([^#\]]+)#([^\]]*)$/,r_=/\B\[\[([^#\]]+)#?\^([^\]]*)$/,i_=/\B!\[\[([^#\]]+)#?\^([^\]]*)$/;function a_(e,t,r,n){let i=e.document.body.createDiv(B("file-suggestion-wrapper"));i.detach(),(0,cy.setIcon)(i.createDiv(B("file-suggestion-icon")),"lucide-forward",12),i.createDiv({},o=>{o.createDiv({cls:B("file-suggestion-title"),text:n.item.alias}),o.createDiv({cls:B("file-suggestion-subtitle"),text:t.app.metadataCache.fileToLinktext(n.item.file,r)})});let a=i.outerHTML;return i.remove(),i=null,a}function Qu(e,t,r,n,i,a,o){return{id:`link-${o?"embed":"normal"}`,match:o?e_:ZS,index:1,template:s=>s.item.file===null?`${s.item.path.split("|").pop()||s.item.path}`:s.item.alias?a_(e,i,n,s):i.app.metadataCache.fileToLinktext(s.item.file,n),search:(s,u)=>{if(!s)u(t.slice(0,10).map((l,c)=>({item:l,refIndex:c})));else{let l=s.split("|"),c=l.length>1,d=l[0],f=c?l.slice(1).join("|"):null,p=s;c&&(p={"file.basename":d,alias:f}),u([{item:{file:null,path:s,alias:""},refIndex:-1},...r.search(p)])}},replace:s=>{let u=[];o&&s.item.file.extension==="md"&&u.push("!"),s.item.file===null?u.push(`[[${s.item.path}]]`):u.push(i.app.fileManager.generateMarkdownLink(s.item.file,i.file.path,void 0,s.item.alias));let l=!!i.app.vault.getConfig("useMarkdownLinks");return a&&!l&&(u[u.length-1]=u[u.length-1].slice(0,-2)),u.join("")}}}function o_(e,t,r,n){var u;if(!r)return[];let i=r.split("|"),a=e.metadataCache.getFirstLinkpathDest(i[0],t);if(!a)return[];let o=e.metadataCache.getFileCache(a);if(!o||!((u=o.headings)==null?void 0:u.length))return[];let s=o.headings.map(l=>({file:a,heading:l.heading,alias:i[1]||""}));return n?new mn(s,{keys:["heading"]}).search(n):s.map((l,c)=>({item:l,refIndex:c}))}function Xu(e,t,r,n){return{id:`heading-${n?"embed":"normal"}`,match:n?n_:t_,index:1,template:i=>i.item.heading,search:(i,a,o)=>{a(o_(t.app,e,o[1],o[2]))},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!"),a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,"#"+i.item.heading,i.item.alias));let o=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!o?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!o&&a.push("]] "),a.join("")}}}var uy=class{constructor(){this.running=!1;this.cancelled=!1}start(){this.running=!0}stop(){this.running=!1}cancel(){this.stop(),this.cancelled=!0}isRunning(){return this.running}isCancelled(){return this.cancelled}};async function s_(e,t,r,n,i){var u;if(!r)return i([]);let a=r.split("|"),o=e.metadataCache.getFirstLinkpathDest(a[0],t);if(!o)return i([]);let s=e.metadataCache.getFileCache(o);if(!s||!((u=s.sections)==null?void 0:u.length))return i([]);try{let l=await e.metadataCache.blockCache.getForFile(new uy,o);if(!(l==null?void 0:l.blocks))return i([]);let c=l.blocks.map(d=>d.node.type==="heading"?null:{file:o,searchString:d.display,blockId:d.node.id,block:{type:d.node.type,start:d.node.position.start.offset,end:d.node.position.end.offset},alias:a[1]||""}).filter(d=>d);i(n?new mn(c,{keys:["searchString","blockId"]}).search(n):c.map((d,f)=>({item:d,refIndex:f})))}catch(l){i([])}}function l_(e){return["blockquote","code","table","comment","footnoteDefinition"].includes(e)}function Zu(e,t,r,n){return{id:`block-${n?"embed":"normal"}`,match:n?i_:r_,index:1,template:i=>i.item.blockId?`
    ${i.item.searchString}
    ${i.item.blockId}
    `:i.item.searchString,search:(i,a,o)=>{s_(t.app,e,o[1],o[2],a)},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!");let o="#^";if(i.item.blockId)o+=i.item.blockId;else{let u=Ae(),l=l_(i.item.block.type)?` + +`:" ";t.app.vault.cachedRead(i.item.file).then(c=>{let d=`${c.slice(0,i.item.block.end)}${l}^${u}${c.slice(i.item.block.end)}`;t.app.vault.modify(i.item.file,d)}).catch(c=>{t.setError(c),console.error(c)}),o+=u}a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,o,i.item.alias));let s=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!s?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!s&&a.push("]] "),a.join("")}}}m();var c_=/\B#([^\s]*)?$/;function dy(e,t){return{id:"tag",match:c_,index:1,search:(r,n)=>{n(r?[{item:`#${r}`,refIndex:-1},...t.search(r,{limit:50})]:e.slice(0,50).map((i,a)=>({item:i,refIndex:a})))},template:r=>r.item,replace:r=>`${r.item.replace(/<\/?em>/g,"")} `}}m();m();var py=me(Ma());m();m();var f_=/\$&/g,p_=/\$(\d)/g,td=class{constructor(t,r,n){this.data=t;this.term=r;this.strategy=n}getReplacementData(t){let r=this.strategy.replace(this.data);if(r==null)return null;let n="";Array.isArray(r)&&(n=r[1],r=r[0]);let i=this.strategy.match(t);if(i==null||i.index==null)return null;let a=r.replace(f_,i[0]).replace(p_,(o,s)=>i[parseInt(s)]);return{start:i.index,end:i.index+i[0].length,beforeCursor:a,afterCursor:n}}replace(t,r){let n=this.getReplacementData(t);if(n!==null)return r=n.afterCursor+r,[[t.slice(0,n.start),n.beforeCursor,t.slice(n.end)].join(""),r]}render(){return this.strategy.renderTemplate(this.data,this.term)}getStrategyId(){return this.strategy.getId()}};var h_=1,nd=class{constructor(t){this.props=t;this.cache={}}destroy(){return this.cache={},this}replace(t){return this.props.replace(t)}execute(t,r){var a;let n=this.matchWithContext(t);if(!n)return!1;let i=n[(a=this.props.index)!=null?a:h_];return this.search(i,o=>{r(o.map(s=>new td(s,i,this)))},n),!0}renderTemplate(t,r){if(this.props.template)return this.props.template(t,r);if(typeof t=="string")return t;throw new Error(`Unexpected render data type: ${typeof t}. Please implement template parameter by yourself`)}getId(){return this.props.id||null}match(t){return typeof this.props.match=="function"?this.props.match(t):t.match(this.props.match)}search(t,r,n){this.props.cache?this.searchWithCach(t,r,n):this.props.search(t,r,n)}matchWithContext(t){let r=this.context(t);return r===!1?null:this.match(r===!0?t:r)}context(t){return this.props.context?this.props.context(t):!0}searchWithCach(t,r,n){this.cache[t]!=null?r(this.cache[t]):this.props.search(t,i=>{this.cache[t]=i,r(i)},n)}};var rd=class extends py.EventEmitter{constructor(t){super();this.handleQueryResult=t=>{this.emit("hit",{searchResults:t})};this.strategies=t.map(r=>new nd(r))}destroy(){return this.strategies.forEach(t=>t.destroy()),this}run(t){for(let r of this.strategies)if(r.execute(t,this.handleQueryResult))return;this.handleQueryResult([])}};m();var hy=me(Ma());m();var m_=typeof window!="undefined"&&!!window.CustomEvent,Ut=(e,t,r)=>{if(m_)return new CustomEvent(t,r);let n=e.createEvent("CustomEvent");return n.initCustomEvent(t,!1,(r==null?void 0:r.cancelable)||!1,(r==null?void 0:r.detail)||void 0),n};var g_=10,v_="auto",y_="dropdown-menu textcomplete-dropdown",my="textcomplete-item",b_=`${my} active`,Ia=class extends hy.EventEmitter{constructor(t,r){super();this.el=t;this.option=r;this.shown=!1;this.items=[];this.activeIndex=null}static create(t){let r=t.parent||window.document.body,i=r.doc.createElement("ul");return i.className=t.className||y_,Object.assign(i.style,{display:"none",position:"absolute",zIndex:"1000"},t.style),r==null||r.appendChild(i),new Ia(i,t)}render(t,r){let n=Ut(this.el.doc,"render",{cancelable:!0});return this.emit("render",n),n.defaultPrevented?this:(this.clear(),t.length===0?this.hide():(this.items=t.slice(0,this.option.maxCount||g_).map((i,a)=>{var o;return new gy(this,a,i,((o=this.option)==null?void 0:o.item)||{})}),this.setStrategyId(t[0]).renderEdge(t,"header").renderItems().renderEdge(t,"footer").show().setOffset(r).activate(0),this.emit("rendered",Ut(this.el.doc,"rendered")),this))}destroy(){var t;return this.clear(),(t=this.el.parentNode)==null||t.removeChild(this.el),this}select(t){let r={searchResult:t.searchResult},n=Ut(this.el.doc,"select",{cancelable:!0,detail:r});return this.emit("select",n),n.defaultPrevented?this:(this.hide(),this.emit("selected",Ut(this.el.doc,"selected",{detail:r})),this)}show(){if(!this.shown){let t=Ut(this.el.doc,"show",{cancelable:!0});if(this.emit("show",t),t.defaultPrevented)return this;this.el.style.display="block",this.shown=!0,this.emit("shown",Ut(this.el.doc,"shown"))}return this}hide(){if(this.shown){let t=Ut(this.el.doc,"hide",{cancelable:!0});if(this.emit("hide",t),t.defaultPrevented)return this;this.el.style.display="none",this.shown=!1,this.clear(),this.emit("hidden",Ut(this.el.doc,"hidden"))}return this}clear(){return this.items.forEach(t=>t.destroy()),this.items=[],this.el.innerHTML="",this.activeIndex=null,this}up(t){return this.shown?this.moveActiveItem("prev",t):this}down(t){return this.shown?this.moveActiveItem("next",t):this}moveActiveItem(t,r){if(this.activeIndex!=null){let n=t==="next"?this.getNextActiveIndex():this.getPrevActiveIndex();n!=null&&(this.activate(n),r.preventDefault())}return this}activate(t){return this.activeIndex!==t&&(this.activeIndex!=null&&this.items[this.activeIndex].deactivate(),this.activeIndex=t,this.items[t].activate()),this}isShown(){return this.shown}getActiveItem(){return this.activeIndex!=null?this.items[this.activeIndex]:null}setOffset(t){let n=this.el.doc.documentElement;if(n){let i=this.el.offsetWidth;if(t.left){let s=this.option.dynamicWidth?n.scrollWidth:n.clientWidth;t.left+i>s&&(t.left=s-i),this.el.style.left=`${t.left}px`}else t.right&&(t.right-i<0&&(t.right=0),this.el.style.right=`${t.right}px`);let a=!1,o=this.option.placement||v_;if(o==="auto"){let s=this.el.clientHeight;a=t.clientTop!=null&&t.clientTop+s>n.clientHeight}o==="top"||a?(this.el.style.bottom=`${n.clientHeight-t.top+t.lineHeight}px`,this.el.style.top="auto"):(this.el.style.top=`${t.top}px`,this.el.style.bottom="auto")}return this}getNextActiveIndex(){if(this.activeIndex==null)throw new Error;return this.activeIndexo.data)):n||"",this.el.appendChild(a),this}},gy=class{constructor(t,r,n,i){this.dropdown=t;this.index=r;this.searchResult=n;this.props=i;this.active=!1;this.onClick=t=>{t.preventDefault(),this.dropdown.select(this)};this.className=this.props.className||my,this.activeClassName=this.props.activeClassName||b_;let a=t.el.doc,o=a.createElement("li");o.className=this.active?this.activeClassName:this.className;let s=a.createElement("span");s.tabIndex=-1,s.innerHTML=this.searchResult.render(),o.appendChild(s),o.addEventListener("mousedown",this.onClick),o.addEventListener("touchstart",this.onClick),this.el=o}destroy(){var r;let t=this.el;return(r=t.parentNode)==null||r.removeChild(t),t.removeEventListener("mousedown",this.onClick,!1),t.removeEventListener("touchstart",this.onClick,!1),this}activate(){return this.active||(this.active=!0,this.el.className=this.activeClassName,this.dropdown.el.scrollTop=this.el.offsetTop),this}deactivate(){return this.active&&(this.active=!1,this.el.className=this.className),this}};m();var vy=me(Ma());var id=class extends vy.EventEmitter{destroy(){return this}applySearchResult(t){throw new Error("Not implemented.")}getCursorOffset(){throw new Error("Not implemented.")}getBeforeCursor(){throw new Error("Not implemented.")}emitMoveEvent(t){let r=Ut(activeDocument,"move",{cancelable:!0,detail:{code:t}});return this.emit("move",r),r}emitEnterEvent(){let t=Ut(activeDocument,"enter",{cancelable:!0});return this.emit("enter",t),t}emitChangeEvent(){let t=Ut(activeDocument,"change",{detail:{beforeCursor:this.getBeforeCursor()}});return this.emit("change",t),t}emitEscEvent(){let t=Ut(activeDocument,"esc",{cancelable:!0});return this.emit("esc",t),t}getCode(t){return t.keyCode===9||t.keyCode===13?"ENTER":t.keyCode===27?"ESC":t.keyCode===38?"UP":t.keyCode===40||t.keyCode===78&&t.ctrlKey?"DOWN":t.keyCode===80&&t.ctrlKey?"UP":"OTHER"}};m();var yy=me(Ma());var w_=["show","shown","render","rendered","selected","hidden","hide"],ad=class extends yy.EventEmitter{constructor(t,r,n){super();this.editor=t;this.isQueryInFlight=!1;this.nextPendingQuery=null;this.handleHit=({searchResults:t})=>{t.length?this.dropdown.render(t,this.editor.getCursorOffset()):this.dropdown.hide(),this.isQueryInFlight=!1,this.nextPendingQuery!==null&&this.trigger(this.nextPendingQuery)};this.handleMove=t=>{t.detail.code==="UP"?this.dropdown.up(t):this.dropdown.down(t)};this.handleEnter=t=>{let r=this.dropdown.getActiveItem();r?(this.dropdown.select(r),t.preventDefault()):this.dropdown.hide()};this.handleEsc=t=>{this.dropdown.isShown()&&(this.dropdown.hide(),t.preventDefault())};this.handleChange=t=>{t.detail.beforeCursor!=null?this.trigger(t.detail.beforeCursor):this.dropdown.hide()};this.handleSelect=t=>{this.emit("select",t),t.defaultPrevented||this.editor.applySearchResult(t.detail.searchResult)};this.handleResize=()=>{this.dropdown.isShown()&&this.dropdown.setOffset(this.editor.getCursorOffset())};this.completer=new rd(r),this.dropdown=Ia.create((n==null?void 0:n.dropdown)||{}),this.startListening()}destroy(t=!0){return this.completer.destroy(),this.dropdown.destroy(),t&&this.editor.destroy(),this.stopListening(),this}isShown(){return this.dropdown.isShown()}hide(){return this.dropdown.hide(),this}trigger(t){return this.isQueryInFlight?this.nextPendingQuery=t:(this.isQueryInFlight=!0,this.nextPendingQuery=null,this.completer.run(t)),this}startListening(){var t;this.editor.on("move",this.handleMove).on("enter",this.handleEnter).on("esc",this.handleEsc).on("change",this.handleChange),this.dropdown.on("select",this.handleSelect);for(let r of w_)this.dropdown.on(r,n=>this.emit(r,n));this.completer.on("hit",this.handleHit),(t=Ze(this.dropdown.el))==null||t.addEventListener("resize",this.handleResize)}stopListening(){var t;(t=Ze(this.dropdown.el))==null||t.removeEventListener("resize",this.handleResize),this.completer.removeAllListeners(),this.dropdown.removeAllListeners(),this.editor.removeListener("move",this.handleMove).removeListener("enter",this.handleEnter).removeListener("esc",this.handleEsc).removeListener("change",this.handleChange)}};m();m();m();m();var by=e=>{let t=e.getBoundingClientRect(),r=e.doc;if(r==null)throw new Error("Given element does not belong to document");let{defaultView:n,documentElement:i}=r;if(n==null)throw new Error("Given element does not belong to window");let a={top:t.top+n.pageYOffset,left:t.left+n.pageXOffset};return i&&(a.top-=i.clientTop,a.left-=i.clientLeft),a};m();var E_="0".charCodeAt(0),k_="9".charCodeAt(0),wy=e=>E_<=e&&e<=k_,Ey=e=>{let t=getComputedStyle(e),r=t.lineHeight;if(wy(r.charCodeAt(0))){let n=parseFloat(r);return wy(r.charCodeAt(r.length-1))?n*parseFloat(t.fontSize):n}return x_(e.doc,e.nodeName,t)},x_=(e,t,r)=>{let n=e.body;if(!n)return 0;let i=e.createElement(t);i.innerHTML=" ",Object.assign(i.style,{fontSize:r.fontSize,fontFamily:r.fontFamily,padding:"0"}),n.appendChild(i),i.instanceOf(HTMLTextAreaElement)&&(i.rows=1);let a=i.offsetHeight;return n.removeChild(i),a};m();m();function ky(e,t,r){let n=e.doc,i=e.value,a=t+(r||""),o=n.activeElement,s=0,u=0;for(;s=0&&a.length-u-1>=0&&i[i.length-u-1]===a[a.length-u-1];)u++;s=Math.min(s,Math.min(i.length,a.length)-u),e.setSelectionRange(s,i.length-u);let l=a.substring(s,a.length-u);if(e.focus(),!n.execCommand("insertText",!1,l)){e.value=a;let c=n.createEvent("Event");c.initEvent("input",!0,!0),e.dispatchEvent(c)}return e.setSelectionRange(t.length,t.length),o.focus(),e}m();var S_=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];function xy(e,t){let r=e.doc,n=e.win,i=r.createElement("div");i.id="input-textarea-caret-position-mirror-div",r.body.appendChild(i);let a=i.style,o=n.getComputedStyle(e);a.whiteSpace="pre-wrap",a.position="absolute",S_.forEach(l=>{a[l]=o[l]}),a.overflow="hidden",i.textContent=e.value.substring(0,t);let s=r.createElement("span");s.textContent=e.value.substring(t)||".",i.appendChild(s);let u={top:s.offsetTop+parseInt(o.borderTopWidth),left:s.offsetLeft+parseInt(o.borderLeftWidth),height:parseInt(o.lineHeight)};return r.body.removeChild(i),u}var Ds=class extends id{constructor(t){super();this.el=t;this.onInput=()=>{this.emitChangeEvent()};this.onKeydown=t=>{let r=this.getCode(t),n;r==="UP"||r==="DOWN"?n=this.emitMoveEvent(r):r==="ENTER"?n=this.emitEnterEvent():r==="ESC"&&(n=this.emitEscEvent()),n&&n.defaultPrevented&&t.preventDefault()};this.startListening()}destroy(){return super.destroy(),this.stopListening(),this}applySearchResult(t){let r=this.getBeforeCursor();if(r!=null){let n=t.replace(r,this.getAfterCursor());this.el.focus(),Array.isArray(n)&&(ky(this.el,n[0],n[1]),this.el&&this.el.dispatchEvent(Ut(this.el.doc,"input")))}}getCursorOffset(){let t=by(this.el),r=this.getElScroll(),n=this.getCursorPosition(),i=Ey(this.el),a=t.top-r.top+n.top+i,o=t.left-r.left+n.left,s=this.el.getBoundingClientRect().top,u=this.el.doc;if(this.el.dir!=="rtl")return{top:a,left:o,lineHeight:i,clientTop:s};{let l=u.documentElement?u.documentElement.clientWidth-o:0;return{top:a,right:l,lineHeight:i,clientTop:s}}}getBeforeCursor(){return this.el.selectionStart!==this.el.selectionEnd?null:this.el.value.slice(0,this.el.selectionEnd)}getAfterCursor(){return this.el.value.slice(this.el.selectionEnd)}getElScroll(){return{top:this.el.scrollTop,left:this.el.scrollLeft}}getCursorPosition(){return xy(this.el,this.el.selectionEnd)}startListening(){this.el.addEventListener("input",this.onInput),this.el.addEventListener("keydown",this.onKeydown)}stopListening(){this.el.removeEventListener("input",this.onInput),this.el.removeEventListener("keydown",this.onKeydown)}};function __({inputRef:e,isAutocompleteVisibleRef:t,obsidianContext:r,excludeDatePicker:n}){let{stateManager:i,filePath:a,view:o}=r,s=null,u=null,l=i.getSetting("date-trigger"),c=new RegExp(`(?:^|\\s)${Ln(l)}$`),d=Object.keys(i.app.metadataCache.getTags()).sort(),f=new mn(d),p=i.app.metadataCache.getLinkSuggestions().filter(H=>!!H.file),g=new mn(p,{keys:["file.basename","alias"]}),y=o.app.vault.getConfig("autoPairBrackets"),b=[dy(d,f),Zu(a,i,y,!0),Zu(a,i,y,!1),Xu(a,i,y,!0),Xu(a,i,y,!1),Qu(o.getWindow(),p,g,a,i,y,!0),Qu(o.getWindow(),p,g,a,i,y,!1)];n||b.push(oy(i));let x=new Ds(e.current),T=new ad(x,b,{dropdown:{parent:ur(e.current),maxCount:96,className:`${B("autocomplete")} ${B("ignore-click-outside")}`,rotate:!0,item:{className:`${B("autocomplete-item")} ${B("ignore-click-outside")}`,activeClassName:`${B("autocomplete-item-active")} ${B("ignore-click-outside")}`}}}),C=()=>{T.isShown()||(t.current=!1);let H=s.win;u.destroy(),s.remove(),H.setTimeout(()=>{s=null})};T.on("show",()=>{t.current=!0}),T.on("hidden",()=>{t.current=!1});let A;if(!n){A=D=>{if(T.isShown&&["#","^"].contains(D.key)){let z=T.dropdown.getActiveItem(),U=z==null?void 0:z.searchResult;if(U&&U.strategy.props.id.startsWith("link")){D.preventDefault(),x.applySearchResult(U),Lt(e.current,D.key==="^"?"#^":"#");return}}if(!s)return;if(D.key==="Enter"){D.preventDefault();let z=u.selectedDates;return z.length?_s(z[0],e,i):_s(new Date,e,i),C()}if(D.key==="Escape")return D.preventDefault(),C();let K=(0,Sy.moment)(u.selectedDates[0]||new Date);if(D.key==="ArrowRight"){D.preventDefault(),K.weekday()===6?u.setDate(ly(K).toDate(),!1):u.setDate(K.add(1,"day").toDate(),!1);return}if(D.key==="ArrowLeft"){D.preventDefault(),K.weekday()===0?u.setDate(sy(K).toDate(),!1):u.setDate(K.subtract(1,"day").toDate(),!1);return}if(D.key==="ArrowUp"){D.preventDefault(),u.setDate(K.subtract(1,"week").toDate(),!1);return}if(D.key==="ArrowDown"){D.preventDefault(),u.setDate(K.add(1,"week").toDate(),!1);return}},e.current.addEventListener("keydown",A);let H=e.current.doc;x.on("change",D=>{let K=D.detail.beforeCursor;if(K&&c.test(K)){let z=x.getCursorOffset();s?(s.style.left=`${z.left||0}px`,s.style.top=`${z.top||0}px`,Gu(z,s)):s=H.body.createDiv({cls:`${B("date-picker")} ${B("ignore-click-outside")}`},U=>{U.style.left=`${z.left||0}px`,U.style.top=`${z.top||0}px`,ay({div:U,inputRef:e,stateManager:i,cb:Z=>{u=Z,t.current=!0,Gu(z,s)}})})}else s&&C()})}return()=>{!n&&e.current&&e.current.removeEventListener("keydown",A),s&&C(),T.destroy(),x.destroy()}}function _y({isInputVisible:e,onEnter:t,onEscape:r,onKeyDown:n,excludeDatePicker:i}){let a=P.useContext(We),o=P.useRef(!1),s=P.useRef(),{oncompositionstart:u,oncompositionend:l,getShouldIMEBlockAction:c}=yo();return P.useEffect(()=>{let d=s.current;if(e&&d)return d.focus(),d.selectionStart=d.selectionEnd=d.value.length,__({inputRef:s,isAutocompleteVisibleRef:o,obsidianContext:a,excludeDatePicker:i})},[e]),{ref:s,oncompositionstart:u,oncompositionend:l,onKeyDownCapture:d=>{c()||o.current||n(d)||(d.key==="Enter"?t&&t(d):d.key==="Escape"&&r&&r(d))}}}m();var Cy=/^[*_]{2}(.+)[*_]{2}$/;function C_(e){return e.replace(Cy,"$1")}var Dy=/^[*_]{1}(.+)[*_]{1}$/;function D_(e){return e.replace(Dy,"$1")}var Ty=/^`{1}(.+)`{1}$/;function T_(e){return e.replace(Ty,"$1")}var My=/^={2}(.+)={2}$/;function M_(e){return e.replace(My,"$1")}var Iy=/^~{2}(.+)~{2}$/;function I_(e){return e.replace(Iy,"$1")}var A_=/^(?:>.+?(?:[\r\n]|$))+$/;function L_(e){return e.split(` +`).map(r=>r[0]===">"?r:`> ${r}`).join(` +`)}function P_(e){return e.split(` +`).map(r=>r[0]!==">"?r:r.replace(/^>+\s*/,"")).join(` +`)}var Aa=/^(?:\s*\d+[.)]\s+.*?(?:[\r\n]|$))+$/,od=/^(?:\s*\d+[.)]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,sd=/^(?:\s*\d+[.)]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function F_(e){return e.match(/^\s*/)[0].length}function N_(e){return parseInt(e.match(/^\s*(\d+)/)[1],10)}function O_(e){let t=[0],r=0;return e.split(` +`).map(n=>{let i=F_(n);if(i>r?t.push(0):iAa.test(t)?t.replace(/^(\s*)\d+[.)]\s+/,"$1"):t).join(` +`)}var La=/^(?:\s*[-*+]\s+.*?(?:[\r\n]|$))+$/,ld=/^(?:\s*[-*+]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,cd=/^(?:\s*[-*+]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function Ay(e){return e.split(` +`).map(r=>La.test(r)?r:r.replace(/^(\s*)/,"$1- ")).join(` +`)}function H_(e){return e.split(` +`).map(t=>ld.test(t)||cd.test(t)?t:t.replace(/^(\s*[-*+]\s+)/,"$1[ ] ")).join(` +`)}function B_(e){return e.split(` +`).map(t=>od.test(t)||sd.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)/,"$1[ ] ")).join(` +`)}function K_(e){return e.split(` +`).map(t=>ld.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")).join(` +`)}function $_(e){return e.split(` +`).map(t=>od.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[[^\]]{1}\]/,"$1[ ]")).join(` +`)}function U_(e){return e.split(` +`).map(t=>cd.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[\s\]/,"$1[x]")).join(` +`)}function V_(e){return e.split(` +`).map(t=>sd.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[\s\]/,"$1[x]")).join(` +`)}function W_(e){return e.split(` +`).map(r=>La.test(r)?r.replace(/^(\s*)[-+*]\s+/,"$1"):r).join(` +`)}var Ly={"editor:toggle-bold":e=>{Ai(e,Cy,C_,"**")},"editor:toggle-code":e=>{Ai(e,Ty,T_,"`")},"editor:toggle-italics":e=>{Ai(e,Dy,D_,"*")},"editor:toggle-highlight":e=>{Ai(e,My,M_,"==")},"editor:toggle-strikethrough":e=>{Ai(e,Iy,I_,"~~")},"editor:toggle-blockquote":e=>{ys(e,A_,L_,P_)},"editor:toggle-bullet-list":e=>{ys(e,La,Ay,W_)},"editor:toggle-numbered-list":e=>{ys(e,Aa,O_,R_)},"editor:toggle-checklist-status":e=>{let t=On(e),r=t.selection.end===t.selection.start,n=Ii({text:t.text,selection:t.selection}),i=Pt(e,n),a=i.selectedText,o=La.test(a),s=Aa.test(a);!o&&!s?a=Ay(a):o?ld.test(a)?a=U_(a):cd.test(a)?a=K_(a):a=H_(a):od.test(a)?a=V_(a):sd.test(a)?a=$_(a):a=B_(a);let u=Lt(e,a);if(r){let l=a.length-i.selectedText.length;Pt(e,{start:t.selection.start+l,end:t.selection.end+l})}else Pt(e,{start:i.selection.start,end:u.selection.end})}},ud={"(":e=>cn(e,"(",")",!1),"[":e=>cn(e,"[","]",!1,!0),"{":e=>cn(e,"{","}",!1),"'":e=>cn(e,"'","'",!1),'"':e=>cn(e,'"','"',!1)},dd={"*":e=>cn(e,"*","*",!1),_:e=>cn(e,"_","_",!1),"`":e=>cn(e,"`","`",!1),"=":e=>cn(e,"=","=",!0),"~":e=>cn(e,"~","~",!0),$:e=>cn(e,"$","$",!0),"%":e=>cn(e,"%","%",!0)},z_={"(":")","[":"]","{":"}","'":"'",'"':'"',"*":"*",_:"_","`":"`","=":"=","~":"~",$:"$","%":"%"};function Py(e,t){let r=On(e);if(r.selection.end!==r.selection.start||r.selection.end===r.text.length)return!1;let n=r.text[r.selection.end-1],i=r.text[r.selection.end];if(t[n]&&i===z_[n])return Pt(e,{start:r.selection.end,end:r.selection.end+1}),Lt(e,""),!0}function Fy(e){return Py(e,ud)}function Ny(e){return Py(e,dd)}function j_(e,t,r){let n=t?" ":" ".repeat(r);return e.split(` +`).map(i=>n+i).join(` +`)}function q_(e,t,r){let n=t?"\\t":" ".repeat(r),i=new RegExp(`^${n}`);return e.split(` +`).map(a=>i.test(a)?a.replace(i,""):a).join(` +`)}function Oy(e,t,r,n){let i=On(e);if(t){let l=Ii(i),c=Pt(e,l);if(Lt(e,q_(c.selectedText,r,n)),i.selection.start===i.selection.end){let d=r?1:n;Pt(e,{start:i.selection.start-d,end:i.selection.end-d})}return!0}let a=Ii(i),o=Pt(e,a),u=j_(o.selectedText,r,n).replace(/^(\s*)(\d+)([.)]\s)/,(l,c,d,f)=>`${c}1${f}`);return Lt(e,u),!0}function Ry(e){let t=On(e);if(t.selection.start!==t.selection.end)return!1;let r=Ii(t),n=e.value.slice(r.start,t.selection.end),i=e.value.slice(r.start,r.end);if(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Pt(e,{start:r.start-1,end:r.end}),Lt(e,` +`),!0;if(/^(\s*\d[.)]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Pt(e,{start:r.start-1,end:r.end}),Lt(e,` +`),!0;if(La.test(n)){let a=n.match(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)/)[1];return Da(e,` +${a.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")}`),!0}if(Aa.test(n)){let s=n.match(/^(\s*\d+[.)]\s+(?:\[[^\]]\]\s*)?)/)[1].replace(/^(\s*\d+[.)]\s+)\[[^\]]\]/,"$1[ ]").replace(/^(\s*)(\d+)/,(u,l,c)=>`${l}${parseInt(c)+1}`);return Da(e,` +${s}`),!0}return!1}function Xn(e,t){return fd.Platform.isMobile?e.key==="Enter"&&!0:t.getSetting("new-line-trigger")==="enter"?e.key==="Enter"&&!(e.shiftKey||e.metaKey||e.ctrlKey):e.key==="Enter"&&e.shiftKey}var xr=P.forwardRef(function({onEnter:t,onEscape:r,onSubmit:n,...i},a){let{view:o,stateManager:s}=P.useContext(We),u=app.vault.getConfig("autoPairMarkdown"),l=app.vault.getConfig("autoPairBrackets"),c=app.vault.getConfig("useTab"),d=app.vault.getConfig("tabSize"),f=!!app.vault.getConfig("useMarkdownLinks"),p=_y({isInputVisible:!0,onEnter:t,onEscape:r,onKeyDown:g=>{if(g.key==="Backspace"){let y=Fy(g.target);return y||Ny(g.target)}if(Xn(g,s)){let y=Ry(g.target);if(y)return g.preventDefault(),y}if(g.key==="Tab")return g.preventDefault(),Oy(g.target,g.shiftKey,c,d);if(u){let y=dd[g.key];if(y&&y(g.target))return g.preventDefault(),!0}if(l){if(f&&g.key==="[")return!1;let y=ud[g.key];if(y&&y(g.target))return g.preventDefault(),!0}return!1}});return P.useEffect(()=>{let g=y=>{let b=Ly[y];b&&b(p.ref.current)};return o.emitter.on("hotkey",g),()=>{o.emitter.off("hotkey",g)}},[o]),h(S,null,h("div",{"data-replicated-value":i.value,className:B("grow-wrap")},h("textarea",{"data-ignore-drag":!0,rows:1,className:B("item-input"),...i,...p,ref:g=>{p.ref.current=g,a&&typeof a=="function"?a(g):a&&(a.current=g)}})),fd.Platform.isMobile&&h("button",{onPointerDown:n,className:B("item-submit-button")},L("Submit")))});m();var md=me(Hy());m();var Sr=me(require("obsidian"));var Y_=["bmp","png","jpg","jpeg","gif","svg"],J_=["mp3","wav","m4a","3gp","flac","ogg","oga"],G_=["mp4","webm","ogv"],Q_=/\u00A0/g,X_=/[!"#$%&()*+,.:;<=>?@^`{|}~/[\]\\]/g;function By(e){return e.replace(X_," ").replace(/\s+/g," ").trim()}function zr(e){let r=e.replace(Q_," ").normalize("NFC").split(/\|(.*)/),n=r[0].split(/#(.*)/);return{root:n[0],subpath:n[1]?"#"+n[1]:"",alias:r[1]||""}}function Z_(e,t){if(!e||!t)return null;let r=t.split("#").filter(l=>!!l);if(!r||r.length===0)return null;if(r.length===1){let l=r[0];if(l.startsWith("^")){let c=l.slice(1).toLowerCase(),d=e.blocks;if(d&&d[c]){let f=d[c];return{type:"block",block:f,start:f.position.start.offset,end:f.position.end.offset,startLine:f.position.start.line,endLine:f.position.end.line}}else return null}}let n=e.headings;if(!n||n.length===0)return null;let i=0,a=0,o=0,s=null,u=null;for(;ao&&By(l.heading).toLowerCase()===By(r[i]).toLowerCase()&&(i++,o=l.level,i===r.length&&(s=l))}return s?{type:"heading",current:s,next:u,start:s.position.start.offset,end:u?u.position.start.offset:null,startLine:s.position.start.line,endLine:u?u.position.end.line:null}:null}function eC(e){e.querySelectorAll(".task-list-item-checkbox").forEach((r,n)=>{r.dataset.checkboxIndex=n.toString()})}function tC(e,t){e.querySelectorAll(".internal-link").forEach(n=>{let i=zr(n.getAttr("href"));t.app.metadataCache.getFirstLinkpathDest(i.root,t.file.path)||n.addClass("is-unresolved")})}function nC(e,t,r){e.empty(),e.createEl("img",{attr:{src:r.app.vault.getResourcePath(t)}},n=>{e.hasAttribute("width")&&n.setAttribute("width",e.getAttribute("width")),e.hasAttribute("height")&&n.setAttribute("height",e.getAttribute("height")),e.hasAttribute("alt")&&n.setAttribute("alt",e.getAttribute("alt"))}),e.addClasses(["image-embed","is-loaded"])}function Ky(e,t,r){e.empty(),e.createEl("audio",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}}),e.addClasses(["media-embed","is-loaded"])}function rC(e,t,r){e.empty(),e.createEl("video",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}},n=>{let i=()=>{n.removeEventListener("loadedmetadata",i),n.videoWidth===0&&n.videoHeight===0&&(e.empty(),Ky(e,t,r))};n.addEventListener("loadedmetadata",i)}),e.addClasses(["media-embed","is-loaded"])}async function $y(e,t,r){let n=r.app.metadataCache.getFileCache(e);if(!n)return null;let i=await r.app.vault.cachedRead(e);if(!t.subpath)return{markdown:i,boundary:null};let a=Z_(n,t.subpath);if(a)return{markdown:i.substring(a.start,a.end===null?void 0:a.end),boundary:a};if(t.subpath)return{markdown:`${L("Unable to find")} ${t.root}${t.subpath}`,boundary:null}}function Uy(e,t,r,n){r.getWindow().setTimeout(async()=>{if(!r.plugin.windowRegistry.has(r.getWindow()))return;if(r.plugin.windowRegistry.get(r.getWindow()).viewMap.has(r.id)){let{markdown:a}=await $y(e,t,r);if(!a)return;a.startsWith(L("Unable to find"))?n>0&&Uy(e,t,r,--n):r.plugin.stateManagers.forEach(o=>{o.onFileMetadataChange()})}},2e3)}async function iC(e,t,r,n,i){var u;let{markdown:a,boundary:o}=await $y(t,r,n);if(!a)return;e.empty();let s=e.createDiv();if(s.addClasses(["markdown-preview-view",B("markdown-preview-view")]),s.createDiv(B("embed-link-wrapper"),l=>{l.createEl("a",{href:e.getAttr("src")||t.basename,cls:`internal-link ${B("embed-link")}`},c=>{(0,Sr.setIcon)(c,"link"),c.setAttr("aria-label",t.basename)})}),await Sr.MarkdownRenderer.renderMarkdown(a,s.createDiv(),t.path,n),e.addClass("is-loaded"),a.startsWith(L("Unable to find"))&&r.subpath&&r.subpath!=="#")Uy(t,r,n,4);else{let l=e.findAll(".task-list-item-checkbox");(l==null?void 0:l.length)&&((u=app.metadataCache.getFileCache(t).listItems)==null||u.filter(d=>o?d.position.start.line>=o.startLine&&d.position.end.line<=o.endLine:!0).forEach((d,f)=>{l[f]&&(l[f].dataset.oStart=d.position.start.offset.toString(),l[f].dataset.oEnd=d.position.end.offset.toString(),l[f].dataset.src=t.path)}))}i>0&&await Vy(s,n,--i)}function aC(e,t){e.addClass("is-loaded"),e.empty(),e.createEl("a",{cls:"file-link",href:e.getAttribute("src"),text:t.name},r=>{r.setAttribute("aria-label",L("Open in default app")),r.createSpan({},n=>(0,Sr.setIcon)(n,"lucide-arrow-up-right"))})}function Vy(e,t,r){return Promise.all(e.findAll(".internal-embed").map(async n=>{let i=n.getAttribute("src"),a=zr(i),o=typeof i=="string"&&t.app.metadataCache.getFirstLinkpathDest(a.root,t.file.path);if(o instanceof Sr.TFile)return Y_.contains(o.extension)?nC(n,o,t):J_.contains(o.extension)?Ky(n,o,t):G_.contains(o.extension)?rC(n,o,t):o.extension==="md"?await iC(n,o,a,t,r):aC(n,o)}))}async function Pa(e,t){let r=e.getWindow().document.body.createDiv();r.detach();try{await Sr.MarkdownRenderer.renderMarkdown(t,r,e.file.path,e),eC(r),tC(r,e),await Vy(r,e,5)}catch(n){console.error(n)}return r}function gd(e,t){!t||!e||(e&&!e.firstChild?e.appendChild(t):e.firstChild&&e.firstChild!==t&&e.replaceChild(t,e.firstChild))}var Fa=P.memo(function({className:t,markdownString:r,searchQuery:n,...i}){let{stateManager:a}=P.useContext(We),o=P.useRef(),s=P.useRef(),u=P.useRef();return P.useEffect(()=>{Pa(a.getAView(),r).then(l=>{s.current=l,u.current=new md.default(l),o.current&&gd(o.current,l)}).catch(l=>{a.setError(l),console.error(l)})},[a,r]),P.useEffect(()=>{var l,c;(l=u.current)==null||l.unmark(),n&&n.trim()&&((c=u.current)==null||c.mark(n))},[n]),h("div",{ref:l=>{o.current=l,gd(l,s.current)},className:et(["markdown-preview-view",B("markdown-preview-view"),t]),...i})}),Wy=P.memo(function({dom:t,className:r,searchQuery:n,...i}){let{stateManager:a}=P.useContext(We),o=P.useMemo(()=>t?t.cloneNode(!0):createDiv(),[t,a]),s=P.useMemo(()=>new md.default(o),[o]);return P.useEffect(()=>{s.unmark(),n&&n.trim()&&s.mark(n)},[s,n]),h("div",{ref:u=>{gd(u,o)},className:et(["markdown-preview-view",B("markdown-preview-view"),r]),...i})});m();var Na=me(require("obsidian"));function oC(e,t){if(t)return t.from((0,Na.moment)());let r=(0,Na.moment)().startOf("day");if(r.isSame(e,"day"))return L("today");let n=e.diff(r,"day");return n===-1?L("yesterday"):n===1?L("tomorrow"):e.from(r)}function zy({item:e,stateManager:t}){if(!t.useSetting("show-relative-date")||!e.data.metadata.date)return null;let n=oC(e.data.metadata.date,e.data.metadata.time);return h("span",{className:B("item-metadata-date-relative")},n)}function jy({item:e,stateManager:t,filePath:r,onEditDate:n,onEditTime:i,getDateColor:a}){let o=t.useSetting("hide-date-display"),s=t.useSetting("date-format"),u=t.useSetting("time-format"),l=t.useSetting("date-display-format"),c=t.useSetting("link-date-to-daily-note"),d=P.useMemo(()=>e.data.metadata.date?a(e.data.metadata.date):null,[e.data.metadata.date,a]);if(o||!e.data.metadata.date)return null;let f=e.data.metadata.date.format(s);if(!f)return null;let p=!!e.data.metadata.time,g=e.data.metadata.date.format(l),y=p?e.data.metadata.time.format(u):null,b=f?(0,Na.getLinkpath)(f):null,x=f?t.app.metadataCache.getFirstLinkpathDest(b,r):null,T=b&&c?h("a",{href:b,"data-href":b,className:`internal-link ${x?"":"is-unresolved"}`,target:"blank",rel:"noopener"},g):g,C={};return c||(C["aria-label"]=L("Change date"),C.onClick=n),h("span",{style:d&&{"--date-color":d.color,"--date-background-color":d.backgroundColor},className:et([B("item-metadata-date-wrapper"),{"has-background":!!(d==null?void 0:d.backgroundColor)}])},h("span",{...C,className:`${B("item-metadata-date")} ${c?"":"is-button"}`},T)," ",p&&h("span",{onClick:i,className:`${B("item-metadata-time")} is-button`,"aria-label":L("Change time")},y))}function sC(e){let{stateManager:t,boardModifiers:r}=P.useContext(We),n=Wn();return P.useMemo(()=>({onEditDate:o=>{var s;os(o.view,t,{x:o.clientX,y:o.clientY},ss({stateManager:t,boardModifiers:r,item:e,hasDate:!0,path:n}),(s=e.data.metadata.date)==null?void 0:s.toDate())},onEditTime:o=>{ls(o.view,t,{x:o.clientX,y:o.clientY},cs({stateManager:t,boardModifiers:r,item:e,hasTime:!0,path:n}),e.data.metadata.time)}}),[r,n,e,t])}function lC(e,t){let r=0;return e.replace(/^(\s*[-+*]\s+?\[)([^\]])(\]\s+)/gm,(n,i,a,o)=>{let s=n;return r===t&&(a===" "?s=`${i}x${o}`:s=`${i} ${o}`),r++,s})}async function cC(e){let t=app.vault.getAbstractFileByPath(e.dataset.src);if(!(t instanceof qy.TFile))return;let r=await app.vault.cachedRead(t),n=parseInt(e.dataset.oStart),i=parseInt(e.dataset.oEnd),o=r.substring(n,i).replace(/^(.+?)\[(.)\](.+)$/,(s,u,l,c)=>l!==" "?(e.parentElement.removeClass("is-checked"),e.parentElement.dataset.task="",`${u}[ ]${c}`):(e.parentElement.addClass("is-checked"),e.parentElement.dataset.task="x",`${u}[x]${c}`));await app.vault.modify(t,`${r.substring(0,n)}${o}${r.substring(i)}`)}var Yy=P.memo(function({item:t,isEditing:r,setIsEditing:n,searchQuery:i}){var H;let[a,o]=P.useState(t.data.titleRaw),{stateManager:s,filePath:u,boardModifiers:l,view:c,getTagColor:d,getDateColor:f}=P.useContext(We),p=s.useSetting("hide-tags-display"),g=Wn(),{onEditDate:y,onEditTime:b}=sC(t);P.useEffect(()=>{r&&o(t.data.titleRaw)},[r]);let x=P.useCallback(D=>{if(!Xn(D,s))return D.preventDefault(),s.updateItemContent(t,a).then(K=>{l.updateItem(g,K)}).catch(K=>{s.setError(K),console.error(K)}),n(!1),!0},[s,a,t,g]),T=P.useCallback(()=>{s.updateItemContent(t,a).then(D=>{l.updateItem(g,D)}).catch(D=>{s.setError(D),console.error(D)}),n(!1)},[s,a,t,g]),C=P.useCallback(()=>(n(!1),o(t.data.titleRaw),!0),[t]),A=P.useCallback(D=>{let K=D.target;if(K.hasClass("task-list-item-checkbox")){if(K.dataset.src)return cC(K);let z=parseInt(K.dataset.checkboxIndex,10);s.updateItemContent(t,lC(t.data.titleRaw,z)).then(U=>{l.updateItem(g,U)}).catch(U=>{s.setError(U),console.error(U)})}},[g,l,s,t]);return r?h("div",{className:B("item-input-wrapper")},h(xr,{className:B("item-input"),onChange:D=>o(D.target.value),onEnter:x,onEscape:C,onSubmit:T,value:a,onPaste:D=>{ws(D,s,c.getWindow())}})):h("div",{className:B("item-title")},h(Wy,{className:B("item-markdown"),dom:t.data.dom,searchQuery:i,onPointerDown:A}),h("div",{className:B("item-metadata")},h(zy,{item:t,stateManager:s}),h(jy,{item:t,stateManager:s,filePath:u,onEditDate:y,onEditTime:b,getDateColor:f}),!p&&!!((H=t.data.metadata.tags)==null?void 0:H.length)&&h("div",{className:B("item-tags")},t.data.metadata.tags.map((D,K)=>{let z=d(D);return h("a",{href:D,key:K,className:`tag ${B("item-tag")} ${D.toLocaleLowerCase().contains(i)?"is-search-match":""}`,style:z&&{"--tag-color":z.color,"--tag-background-color":z.backgroundColor}},h("span",null,D[0]),D.slice(1))}))))});m();var Ts=me(require("obsidian"));var uC=/[\\/:"*?<>|]+/g,dC=/!?\[\[([^\]]*)\.[^\]]+\]\]/g,fC=/!?\[\[([^\]]*)\]\]/g,pC=/!?\[([^\]]*)\]\([^)]*\)/g;function Jy({setIsEditing:e,item:t,path:r,boardModifiers:n,stateManager:i}){return P.useCallback((a,o)=>{if(o)app.workspace.onLinkContextMenu(a,(0,Ts.getLinkpath)(o),i.file.path);else{let s={x:a.clientX,y:a.clientY},u=!!t.data.metadata.date,l=!!t.data.metadata.time,c=new Ts.Menu().addItem(d=>{d.setIcon("lucide-edit").setTitle(L("Edit card")).onClick(()=>e(!0))});c.addItem(d=>{d.setIcon("lucide-file-plus-2").setTitle(L("New note from card")).onClick(async()=>{let f=t.data.title.split(` +`)[0].trim(),p=f.replace(dC,"$1").replace(fC,"$1").replace(pC,"$1").replace(uC," ").trim(),g=i.getSetting("new-note-folder"),y=i.getSetting("new-note-template"),b=g?i.app.vault.getAbstractFileByPath(g):i.app.fileManager.getNewFileParent(i.file.path),x=await i.app.fileManager.createNewMarkdownFile(b,p),T=i.app.workspace.splitActiveLeaf();await T.openFile(x),i.app.workspace.setActiveLeaf(T,!1,!0),await Ap(i,y);let C=t.data.titleRaw.replace(f,i.app.fileManager.generateMarkdownLink(x,i.file.path));i.updateItemContent(t,C).then(A=>{n.updateItem(r,A)}).catch(A=>{i.setError(A),console.error(A)})})}).addItem(d=>{d.setIcon("lucide-link").setTitle(L("Copy link to card")).onClick(()=>{if(t.data.blockId)navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+t.data.blockId)}`);else{let f=Ae(6);navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+f)}`),i.updateItemContent(t,`${t.data.titleRaw} ^${f}`).then(p=>{n.updateItem(r,p)}).catch(p=>{i.setError(p),console.error(p)})}})}).addSeparator(),/\n/.test(t.data.titleRaw)&&c.addItem(d=>{d.setIcon("lucide-wrap-text").setTitle(L("Split card")).onClick(async()=>{let f=t.data.titleRaw.split(/[\r\n]+/g).map(g=>g.trim()),p=await Promise.all(f.map(g=>i.getNewItem(g)));n.splitItem(r,p)})}),c.addItem(d=>{d.setIcon("lucide-copy").setTitle(L("Duplicate card")).onClick(()=>n.duplicateEntity(r))}).addItem(d=>{d.setIcon("lucide-list-start").setTitle(L("Insert card before")).onClick(async()=>n.insertItems(r,[await i.getNewItem("",!1,!0)]))}).addItem(d=>{d.setIcon("lucide-list-end").setTitle(L("Insert card after")).onClick(async()=>{let f=[...r];f[f.length-1]=f[f.length-1]+1,n.insertItems(f,[await i.getNewItem("",!1,!0)])})}).addItem(d=>{d.setIcon("lucide-arrow-up").setTitle(L("Move to top")).onClick(()=>n.moveItemToTop(r))}).addItem(d=>{d.setIcon("lucide-arrow-down").setTitle(L("Move to bottom")).onClick(()=>n.moveItemToBottom(r))}).addItem(d=>{d.setIcon("lucide-archive").setTitle(L("Archive card")).onClick(()=>n.archiveItem(r))}).addItem(d=>{d.setIcon("lucide-trash-2").setTitle(L("Delete card")).onClick(()=>n.deleteEntity(r))}).addSeparator().addItem(d=>{d.setIcon("lucide-calendar-check").setTitle(u?L("Edit date"):L("Add date")).onClick(()=>{var f;os(a.view,i,s,ss({stateManager:i,boardModifiers:n,item:t,hasDate:u,path:r}),(f=t.data.metadata.date)==null?void 0:f.toDate())})}),u&&(c.addItem(d=>{d.setIcon("lucide-x").setTitle(L("Remove date")).onClick(()=>{let f=i.getSetting("link-date-to-daily-note"),p=i.getSetting("date-trigger"),g=f?"(?:\\[[^\\]]+\\]\\([^\\)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",y=new RegExp(`(^|\\s)${Ln(p)}${g}`),b=t.data.titleRaw.replace(y,"").trim();i.updateItemContent(t,b).then(x=>{n.updateItem(r,x)}).catch(x=>{i.setError(x),console.error(x)})})}),c.addItem(d=>{d.setIcon("lucide-clock").setTitle(l?L("Edit time"):L("Add time")).onClick(()=>{ls(a.view,i,s,cs({stateManager:i,boardModifiers:n,item:t,hasTime:l,path:r}),t.data.metadata.time)})}),l&&c.addItem(d=>{d.setIcon("lucide-x").setTitle(L("Remove time")).onClick(()=>{let f=i.getSetting("time-trigger"),p=new RegExp(`(^|\\s)${Ln(f)}{([^}]+)}`),g=t.data.titleRaw.replace(p,"").trim();i.updateItemContent(t,g).then(y=>{n.updateItem(r,y)}).catch(y=>{i.setError(y),console.error(y)})})})),c.showAtPosition(s)}},[e,t,r,n,i])}m();var Gy=P.memo(function({isEditing:t,setIsEditing:r,showMenu:n}){let i=P.useMemo(()=>t?{"data-ignore-drag":!0}:{},[t]);return h("div",{...i,className:B("item-postfix-button-wrapper")},t?h("a",{"data-ignore-drag":!0,onPointerDown:a=>{a.preventDefault()},onClick:()=>{r(!1)},className:`${B("item-postfix-button")} is-enabled clickable-icon`,"aria-label":L("Cancel")},h(_t,{name:"lucide-x"})):h("a",{"data-ignore-drag":!0,onPointerDown:a=>a.preventDefault(),onClick:n,className:`${B("item-postfix-button")} clickable-icon`,"aria-label":L("More options")},h(_t,{name:"lucide-more-vertical"})))});m();var Ms=me(require("obsidian"));function Qy({item:e,isSettingsVisible:t,searchQuery:r}){return t||!e.data.metadata.fileMetadata?null:h("div",{className:B("item-metadata-wrapper")},h(mC,{metadata:e.data.metadata.fileMetadata,order:e.data.metadata.fileMetadataOrder,searchQuery:r}))}function Xy(e,t){if(e.ts){let r=t.getSetting("date-display-format");return(0,Ms.moment)(e.ts).format(r)}return null}function Zy(e,t){if(!e.path)return null;let r=app.vault.getAbstractFileByPath(e.path);if(r&&r instanceof Ms.TFile){let n=app.fileManager.generateMarkdownLink(r,t.file.path,e.subpath,e.display);return`${e.embed&&n[0]!=="!"?"!":""}${n}`}return`${e.embed?"!":""}[[${e.path}${e.display?`|${e.display}`:""}]]`}function hC({data:e,searchQuery:t}){let{view:r,stateManager:n}=P.useContext(We);if(Array.isArray(e.value))return h("span",{className:B("meta-value")},e.value.map((s,u,l)=>{let c=`${s}`,d=typeof s=="object"&&!Array.isArray(s)&&(Xy(s,n)||Zy(s,r)),f=c.toLocaleLowerCase().contains(t);return h(S,null,d||e.containsMarkdown?h(Fa,{className:"inline",markdownString:d||c,searchQuery:t}):f?h("span",{className:"is-search-match"},c):c,u{let a=t[i];return h("tr",{key:i,className:B("meta-row")},!a.shouldHideLabel&&h("td",{className:`${B("meta-key")} ${(a.label||i).toLocaleLowerCase().contains(n)?"is-search-match":""}`,"data-key":i},h("span",null,a.label||i)),h("td",{colSpan:a.shouldHideLabel?2:1,className:B("meta-value-wrapper"),"data-value":Array.isArray(a.value)?a.value.join(", "):`${a.value}`},i==="tags"?a.value.map((o,s)=>h("a",{href:o,key:s,className:`tag ${B("item-tag")} ${o.toLocaleLowerCase().contains(n)?"is-search-match":""}`},h("span",null,o[0]),o.slice(1))):h(hC,{data:a,searchQuery:n})))})))});var eb=P.memo(function({item:t,shouldMarkItemsComplete:r,isMatch:n,searchQuery:i}){let{stateManager:a,boardModifiers:o}=P.useContext(We),[s,u]=P.useState(!1),l=P.useContext(xt);P.useEffect(()=>{let y=()=>{s&&u(!1)};return l.dragManager.emitter.on("dragStart",y),()=>{l.dragManager.emitter.off("dragStart",y)}},[l,s]),P.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]);let c=Wn(),d=Jy({boardModifiers:o,item:t,setIsEditing:u,stateManager:a,path:c}),f=P.useCallback(y=>{if(y.target instanceof y.view.HTMLTextAreaElement)return;y.preventDefault(),y.stopPropagation();let b=y.target instanceof y.view.HTMLAnchorElement&&y.target.hasClass("internal-link")?y.target.dataset.href:void 0;d(y,b)},[d]),p=P.useCallback(()=>{u(!0)},[u]),g=P.useMemo(()=>s?{"data-ignore-drag":!0}:{},[s]);return h("div",{onContextMenu:f,onDblClick:p,className:B("item-content-wrapper"),...g},h("div",{className:B("item-title-wrapper"),...g},h(pv,{boardModifiers:o,item:t,path:c,shouldMarkItemsComplete:r,stateManager:a}),h(Yy,{isEditing:s,item:t,searchQuery:n?i:void 0,setIsEditing:u}),h(Gy,{isEditing:s,setIsEditing:u,showMenu:d})),h(Qy,{searchQuery:n?i:void 0,isSettingsVisible:s,item:t}))}),vd=P.memo(function(t){let r=P.useRef(null),n=P.useRef(null),i=P.useContext(go),{itemIndex:a,...o}=t;Mi(n,n);let s=i?o.item.data.titleSearch.contains(i):!1,u=iv(o.item);return i&&(s?u.push("is-search-hit"):u.push("is-search-miss")),h("div",{ref:n,className:B("item-wrapper")},h("div",{ref:r,className:et([B("item"),...u])},t.isStatic?h(eb,{...o,isMatch:s,searchQuery:i}):h(gr,{elementRef:r,measureRef:n,id:t.item.id,index:a,data:t.item},h(eb,{...o,isMatch:s,searchQuery:i}))))}),tb=P.memo(function({isStatic:t,items:r,shouldMarkItemsComplete:n}){return h(S,null,r.map((i,a)=>h(vd,{key:i.id,item:i,itemIndex:a,shouldMarkItemsComplete:n,isStatic:t})))});m();m();var gC=function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(c){try{l(n.next(c))}catch(d){o(d)}}function u(c){try{l(n.throw(c))}catch(d){o(d)}}function l(c){c.done?a(c.value):i(c.value).then(s,u)}l((n=n.apply(e,t||[])).next())})};function Is(e){let t=0,r=0,n=e;do t+=n.offsetTop||0,r+=n.offsetLeft||0,n=n.offsetParent;while(n);return{top:t,left:r}}var nb=class{constructor(t){this.element=t}getHorizontalScroll(){return this.element.scrollLeft}getVerticalScroll(){return this.element.scrollTop}getMaxHorizontalScroll(){return this.element.scrollWidth-this.element.clientWidth}getMaxVerticalScroll(){return this.element.scrollHeight-this.element.clientHeight}getHorizontalElementScrollOffset(t,r){return Is(t).left-Is(r).left}getVerticalElementScrollOffset(t,r){return Is(t).top-Is(r).top}scrollTo(t,r){this.element.scrollLeft=t,this.element.scrollTop=r}},rb=class{constructor(){this.element=window}getHorizontalScroll(){return window.scrollX||document.documentElement.scrollLeft}getVerticalScroll(){return window.scrollY||document.documentElement.scrollTop}getMaxHorizontalScroll(){return Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth)-window.innerWidth}getMaxVerticalScroll(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)-window.innerHeight}getHorizontalElementScrollOffset(t){return(window.scrollX||document.documentElement.scrollLeft)+t.getBoundingClientRect().left}getVerticalElementScrollOffset(t){return(window.scrollY||document.documentElement.scrollTop)+t.getBoundingClientRect().top}scrollTo(t,r){window.scrollTo(t,r)}},Zn={elements:[],cancelMethods:[],add:(e,t)=>{Zn.elements.push(e),Zn.cancelMethods.push(t)},remove:(e,t)=>{let r=Zn.elements.indexOf(e);r>-1&&(t&&Zn.cancelMethods[r](),Zn.elements.splice(r,1),Zn.cancelMethods.splice(r,1))}},ib=typeof window!="undefined",vC={cancelOnUserAction:!0,easing:e=>--e*e*e+1,elementToScroll:ib?window:null,horizontalOffset:0,maxDuration:3e3,minDuration:250,speed:500,verticalOffset:0};function yC(e,t={}){return gC(this,void 0,void 0,function*(){if(ib){if(!window.Promise)throw"Browser doesn't support Promises, and animated-scroll-to depends on it, please provide a polyfill."}else return new Promise(A=>{A(!1)});let r,n,i,a=Object.assign(Object.assign({},vC),t),o=a.elementToScroll===window,s=!!a.elementToScroll.nodeName;if(!o&&!s)throw"Element to scroll needs to be either window or DOM element.";let u=o?document.documentElement:a.elementToScroll;getComputedStyle(u).getPropertyValue("scroll-behavior")==="smooth"&&console.warn(`${u.tagName} has "scroll-behavior: smooth" which can mess up with animated-scroll-to's animations`);let c=o?new rb:new nb(a.elementToScroll);if(e instanceof Element){if(i=e,s&&(!a.elementToScroll.contains(i)||a.elementToScroll.isSameNode(i)))throw"options.elementToScroll has to be a parent of scrollToElement";r=c.getHorizontalElementScrollOffset(i,a.elementToScroll),n=c.getVerticalElementScrollOffset(i,a.elementToScroll)}else if(typeof e=="number")r=c.getHorizontalScroll(),n=e;else if(Array.isArray(e)&&e.length===2)r=e[0]===null?c.getHorizontalScroll():e[0],n=e[1]===null?c.getVerticalScroll():e[1];else throw`Wrong function signature. Check documentation. +Available method signatures are: + animateScrollTo(y:number, options) + animateScrollTo([x:number | null, y:number | null], options) + animateScrollTo(scrollToElement:Element, options)`;r+=a.horizontalOffset,n+=a.verticalOffset;let d=c.getMaxHorizontalScroll(),f=c.getHorizontalScroll();r>d&&(r=d);let p=r-f,g=c.getMaxVerticalScroll(),y=c.getVerticalScroll();n>g&&(n=g);let b=n-y,x=Math.abs(Math.round(p/1e3*a.speed)),T=Math.abs(Math.round(b/1e3*a.speed)),C=x>T?x:T;return Ca.maxDuration&&(C=a.maxDuration),new Promise((A,H)=>{p===0&&b===0&&A(!0),Zn.remove(c.element,!0);let D,K=()=>{se(),cancelAnimationFrame(D),A(!1)};Zn.add(c.element,K);let z=ie=>ie.preventDefault(),U=a.cancelOnUserAction?K:z,Z=a.cancelOnUserAction?{passive:!0}:{passive:!1},J=["wheel","touchstart","keydown","mousedown"],se=()=>{J.forEach(ie=>{c.element.removeEventListener(ie,U,Z)})};J.forEach(ie=>{c.element.addEventListener(ie,U,Z)});let G=Date.now(),Q=()=>{var ie=Date.now()-G,he=ie/C;let pe=Math.round(f+p*a.easing(he)),ge=Math.round(y+b*a.easing(he));ie{this.activeScroll.size===0&&(this.scrollState=jl(this.scrollEl),this.handleEntityRegistration())};this.onDragEnd=()=>{this.activeScroll.clear()};this.handleBeginDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||(this.activeScroll.set(t,r),this.handleDragScroll())};this.handleUpdateDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||this.activeScroll.set(t,r)};this.handleEndDragScroll=({scrollEntitySide:t})=>{this.activeScroll.delete(t)};this.dndManager=t,this.instanceId=Ae(),this.scopeId=r,this.triggerTypes=n,this.scrollState=on,this.parent=i,this.activeScroll=new Map,this.pollForNodes(a)}pollForNodes(t){!t()||this.parent&&!this.parent.observerHandlers?this.dndManager.win.requestAnimationFrame(()=>this.pollForNodes(t)):this.initNodes(t())}initNodes(t){this.scrollEl=t,this.scrollEl.dataset.hitboxid=this.instanceId,this.scrollEl.dataset.scrollid=this.instanceId,this.top=this.createScrollEntity("top"),this.right=this.createScrollEntity("right"),this.bottom=this.createScrollEntity("bottom"),this.left=this.createScrollEntity("left"),this.bindScrollHandlers(),this.observerHandlers=new Map,this.observer=new IntersectionObserver(r=>{r.forEach(n=>{var a;let i=(a=n.target.dataset)==null?void 0:a.hitboxid;if(i&&this.observerHandlers.has(i)){let o=this.observerHandlers.get(i);o&&o(n)}})},{root:t,threshold:.1}),this.scrollEl.addEventListener("scroll",this.onScroll,{passive:!0,capture:!1}),this.dndManager.emitter.on("scrollResize",this.onScroll),this.scrollEl.win.setTimeout(()=>{this.onScroll()}),this.dndManager.observeResize(this.scrollEl),this.parent?this.parent.registerObserverHandler(this.instanceId,this.scrollEl,r=>{r.isIntersecting?this.handleEntityRegistration():this.handleEntityUnregistration()}):this.handleEntityRegistration()}destroy(){var t;this.handleEntityUnregistration(),this.observer.disconnect(),this.unbindScrollHandlers(),this.scrollEl.removeEventListener("scroll",this.onScroll),this.dndManager.emitter.off("scrollResize",this.onScroll),(t=this.parent)==null||t.unregisterObserverHandler(this.instanceId,this.scrollEl),this.dndManager.unobserveResize(this.scrollEl)}handleEntityRegistration(){Ps.forEach(t=>{let r=Ze(this.scrollEl),n=this.getId(t),i=this.dndManager.scrollEntities.has(n),a=this.isDoneScrolling(t);!a&&!i?this.dndManager.registerScrollEntity(n,this[t],r):a&&i&&this.dndManager.unregisterScrollEntity(n,r)})}handleEntityUnregistration(){Ps.forEach(t=>{let r=Ze(this.scrollEl),n=this.getId(t);this.dndManager.unregisterScrollEntity(n,r)})}registerObserverHandler(t,r,n){this.observerHandlers.set(t,n),this.observer.observe(r)}unregisterObserverHandler(t,r){this.observerHandlers.delete(t),this.observer.unobserve(r)}bindScrollHandlers(){Ps.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.on("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.on("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.on("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.on("dragEnd",this.onDragEnd)})}unbindScrollHandlers(){Ps.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.off("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.off("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.off("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.off("dragEnd",this.onDragEnd)})}isDoneScrolling(t){switch(t){case"top":return this.scrollState.y===0;case"right":return this.scrollState.x===this.scrollState.maxX;case"bottom":return this.scrollState.y===this.scrollState.maxY;case"left":return this.scrollState.x===0}}handleDragScroll(){this.activeScroll.size!==0&&this.scrollEl.win.requestAnimationFrame(()=>{let t={left:0,top:0};this.activeScroll.forEach((r,n)=>{if(this.isDoneScrolling(n))return this.activeScroll.delete(n);let i=["left","right"].includes(n)?"left":"top",a=["right","bottom"].includes(n);t[i]=a?Math.max(Ls-Ls*r/35,0):Math.min(-Ls+Ls*r/35,0)}),this.scrollEl.scrollBy(t),this.scrollState=jl(this.scrollEl),this.handleEntityRegistration(),this.handleDragScroll()})}getId(t){return`${this.instanceId}-${t}`}getPath(t){var r,n,i,a;switch(t){case"right":return[...((r=this.parent)==null?void 0:r.getPath())||[],1];case"bottom":return[...((n=this.parent)==null?void 0:n.getPath())||[],2];case"left":return[...((i=this.parent)==null?void 0:i.getPath())||[],3]}return[...((a=this.parent)==null?void 0:a.getPath())||[],0]}getScrollShift(){var r,n,i;let t=(r=this.parent)==null?void 0:r.getScrollShift();return{x:Xe((n=this.parent)==null?void 0:n.scrollState.x)+Xe(t==null?void 0:t.x),y:Xe((i=this.parent)==null?void 0:i.scrollState.y)+Xe(t==null?void 0:t.y)}}createScrollEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:r.getId(t),initial:Wl(this.scrollEl.getBoundingClientRect(),((n=this.parent)==null?void 0:n.scrollState)||on,((i=this.parent)==null?void 0:i.getScrollShift())||Pn,t),getParentScrollState(){var a;return((a=r.parent)==null?void 0:a.scrollState)||on},getParentScrollShift(){var a;return((a=r.parent)==null?void 0:a.getScrollShift())||Pn},recalcInitial(){var a,o;this.initial=Wl(r.scrollEl.getBoundingClientRect(),((a=r.parent)==null?void 0:a.scrollState)||on,((o=r.parent)==null?void 0:o.getScrollShift())||Pn,t)},getHitbox(){return So(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath(t)},getData(){return{id:r.getId(t),type:bC,side:t,accepts:r.triggerTypes||[],scrollContainer:r.scrollEl,win:Ze(r.scrollEl)}}}}};function ab({scrollRef:e,triggerTypes:t,children:r}){let n=P.useContext(xt),i=P.useContext(mr),a=P.useContext(sa),o=P.useRef(),s=P.useMemo(()=>{if(n){o.current&&o.current.destroy();let u=new yd(n,i,t||[],a,()=>e.current);return o.current=u,u}return null},[n,i,e,t,a]);return P.useEffect(()=>()=>{var u;return(u=o.current)==null?void 0:u.destroy()},[]),s?h(sa.Provider,{value:s},r):null}m();function ob({children:e}){let t=P.useMemo(()=>new oa,[]);return h(la.Provider,{value:t},e)}function sb(e,t){let r=P.useContext(mr),n=P.useRef(null),i=P.useContext(la),a=o=>{n.current=o,n.current&&o.win.requestAnimationFrame(()=>{let s=i.getScrollState(e);s&&(s.x!==0||s.y!==0)&&(n.current.scrollLeft=s.x,n.current.scrollTop=s.y)})};return P.useEffect(()=>{let o=n.current;if(!o)return;let s=ds(o.win,u=>{let l=u.target;i.setScrollState(r,e,{x:l.scrollLeft,y:l.scrollTop})});return o.addEventListener("scroll",s),()=>{o.removeEventListener("scroll",s)}},[i,e,t]),{setRef:a,scrollRef:n}}function Fs({className:e,children:t,triggerTypes:r,isStatic:n,id:i,index:a}){let{setRef:o,scrollRef:s}=sb(i,a);return h("div",{ref:o,className:et([e,B("scroll-container")])},n?t:h(ab,{scrollRef:s,triggerTypes:r},t))}m();m();var bd={width:0,height:0},wC=100,wd=class{constructor(t,r,n){this.hitboxDimensions=bd;this.handleDragStart=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n})=>{let i=t==null?void 0:t.entityId,a=i?this.sortables.has(i):null;!t||!a||!n||(this.setSortState(!0),this.hitboxDimensions=ql(n,r),this.activatePlaceholder(this.hitboxDimensions,ln.none),this.sortables.forEach(([o,s,u])=>{let l=ra(t.getPath(),o.getPath()),c=o.entityId;if(l===an.Self)return this.hidden.add(c),this.hideDraggingEntity(u);l===an.After&&(this.shifted.has(c)||this.shifted.add(c),this.shiftEl(s,ln.none,this.hitboxDimensions))}))};this.dragEndTimeout=0;this.handleDragEnd=({primaryIntersection:t,dragPosition:r,dragOriginHitbox:n,dragEntity:i})=>{if(!this.isSorting||!r||!n||!i){if(!t&&i&&this.sortables.has(i.entityId))return this.resetSelf({maintainHidden:!1});if(t&&i){let s=(t==null?void 0:t.getHitbox())||n,u=Di({position:r,destination:{x:s[0],y:s[1]}});return this.dndManager.win.setTimeout(()=>{this.resetSelf({maintainHidden:!1})},u)}return this.resetSelf({maintainHidden:!0})}this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEndTimeout);let a=(t==null?void 0:t.getHitbox())||n,o=i.scopeId==="htmldnd"?0:Di({position:r,destination:{x:a[0],y:a[1]}});this.dragEndTimeout=this.dndManager.win.setTimeout(()=>{let s=i.entityId.split(":::").pop(),u=t==null?void 0:t.entityId.split(":::").pop();t&&this.sortables.has(t.entityId)&&u!==s&&this.dndManager.onDrop(i,t),this.resetSelf({maintainHidden:!1,shiftTransition:ln.none,placeholderTransition:ln.none})},o),this.hitboxDimensions=bd};this.dragEnterTimeout=0;this.handleDragEnter=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n,primaryIntersection:i})=>{let a=i==null?void 0:i.entityId,o=a?this.sortables.has(a):null;if(!t||!i||!o||!n){!o&&this.isSorting&&this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0});return}t.entityId!==i.entityId&&(this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dragEnterTimeout=this.dndManager.win.setTimeout(()=>{this.setSortState(!0),this.hitboxDimensions=ql(n,r),this.activatePlaceholder(this.hitboxDimensions,ln.placeholder),this.sortables.forEach(([s,u])=>{let l=ra(i.getPath(),s.getPath()),c=s.entityId;!this.hidden.has(c)&&(l===an.Self||l===an.After)?this.shifted.has(c)||(this.shifted.add(c),this.shiftEl(u,ln.outOfTheWay,this.hitboxDimensions)):this.shifted.has(c)&&(this.shifted.delete(c),this.resetEl(u))})},10))};this.dragLeaveTimeout=0;this.handleDragLeave=()=>{!this.isSorting||(this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dragLeaveTimeout=this.dndManager.win.setTimeout(()=>{this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0})},wC),this.hitboxDimensions=bd)};this.instanceId=Ae(),this.dndManager=t,this.sortables=new Map,this.shifted=new Set,this.hidden=new Set,this.isSorting=!1,this.axis=r,this.placeholder=null,this.sortListeners=n?[n]:[],t.dragManager.emitter.on("dragStart",this.handleDragStart),t.dragManager.emitter.on("dragEnd",this.handleDragEnd),t.dragManager.emitter.on("dragEnter",this.handleDragEnter),t.dragManager.emitter.on("dragLeave",this.handleDragLeave)}destroy(){this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEndTimeout),this.dndManager.dragManager.emitter.off("dragStart",this.handleDragStart),this.dndManager.dragManager.emitter.off("dragEnd",this.handleDragEnd),this.dndManager.dragManager.emitter.off("dragEnter",this.handleDragEnter),this.dndManager.dragManager.emitter.off("dragLeave",this.handleDragLeave)}registerSortable(t,r,n,i){let a=r.getData().type==="placeholder";this.sortables.set(t,[r,n,i]),a?(this.placeholder=[r,n,i],i.dataset.axis=this.axis,Tn(i,"transition",ln.none)):Tn(n,"transition",ln.none)}unregisterSortable(t){this.sortables.delete(t)}resetSelf({maintainHidden:t,maintainPlaceholder:r,shiftTransition:n,placeholderTransition:i}){this.isSorting&&this.setSortState(!1),this.isPlaceholderActive&&!r&&this.deactivatePlaceholder(i),this.shifted.size>0&&(this.shifted.forEach(a=>{if(this.sortables.has(a)){let[,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.shifted.clear()),!t&&this.hidden.size>0&&(this.hidden.forEach(a=>{if(this.sortables.has(a)){let[,,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.hidden.clear())}activatePlaceholder(t,r){if(this.placeholder){let n=this.axis==="horizontal",[,,i]=this.placeholder;Tn(i,"transition",r),Tn(i,n?"width":"height",`${n?t.width:t.height}px`),this.isPlaceholderActive=!0}}deactivatePlaceholder(t=ln.placeholder){if(this.placeholder){let[,,r]=this.placeholder;Tn(r,"transition",t),fs(r,"width"),fs(r,"height"),this.isPlaceholderActive=!1}}hideDraggingEntity(t){Tn(t,"display","none")}shiftEl(t,r,n){let i=this.axis==="horizontal"?`translate3d(${n.width}px, 0, 0)`:`translate3d(0, ${n.height}px, 0)`;Tn(t,"transition",r),Tn(t,"transform",i)}resetEl(t,r=ln.outOfTheWay){Tn(t,"transition",r),Tn(t,"transform","translate3d(0, 0, 0)"),fs(t,"display")}addSortNotifier(t){this.sortListeners.push(t)}removeSortNotifier(t){this.sortListeners=this.sortListeners.filter(r=>r!==t)}setSortState(t){this.isSorting!==t&&(this.isSorting=t,this.sortListeners.forEach(r=>r(t)))}};function Li({axis:e,children:t,onSortChange:r}){let n=P.useContext(xt),i=P.useRef(),a=P.useMemo(()=>{if(n){i.current&&i.current.destroy();let o=new wd(n,e,r);return i.current=o,o}return null},[n,e,r]);return P.useEffect(()=>()=>{var o;return(o=i.current)==null?void 0:o.destroy()},[]),a?h(Eo.Provider,{value:a},t):null}m();function Pi({index:e,accepts:t,className:r,isStatic:n}){let i=P.useRef(null),a=P.useRef(null),o=P.useMemo(()=>({id:Ae(),type:"placeholder",accepts:t}),t);return h("div",{ref:a,className:et([r,B("placeholder")])},h("div",{ref:i},!n&&h(gr,{elementRef:i,measureRef:a,id:o.id,index:e,data:o})))}m();m();m();Ar();Ar();function lb(e,t){for(var r in t)e[r]=t[r];return e}function Ed(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function kd(e){this.props=e}function EC(e,t){function r(i){var a=this.props.ref,o=a==i.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,i)||!o:Ed(this.props,i)}function n(i){return this.shouldComponentUpdate=r,h(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(kd.prototype=new ht).isPureReactComponent=!0,kd.prototype.shouldComponentUpdate=function(e,t){return Ed(this.props,e)||Ed(this.state,t)};var cb=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),cb&&cb(e)};var kC=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function xC(e){function t(r){var n=lb({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=kC,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var ub=function(e,t){return e==null?null:wt(wt(e).map(t))},SC={map:ub,forEach:ub,count:function(e){return e?wt(e).length:0},only:function(e){var t=wt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:wt},_C=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}_C(e,t,r,n)};var db=fe.unmount;function Ns(){this.__u=0,this.t=null,this.__b=null}function fb(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function CC(e){var t,r,n;function i(a){if(t||(t=e()).then(function(o){r=o.default||o},function(o){n=o}),n)throw n;if(!r)throw t;return h(r,a)}return i.displayName="Lazy",i.__f=!0,i}function Oa(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),db&&db(e)},(Ns.prototype=new ht).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=fb(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,g){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(y){return d(y,p,g)}),f.__c&&f.__c.__P===p&&(f.__e&&g.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=g)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},Ns.prototype.componentWillUnmount=function(){this.t=[]},Ns.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=lb({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&h(S,null,e.fallback);return i&&(i.__h=null),[h(S,null,t.__e?null:e.children),i]};var pb=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),xn(h(DC,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function MC(e,t){var r=h(TC,{__v:e,i:t});return r.containerInfo=t,r}(Oa.prototype=new ht).__e=function(e){var t=this,r=fb(t.__v),n=t.o.get(e);return n[0]++,function(i){var a=function(){t.props.revealOrder?(n.push(i),pb(t,e,n)):i()};r?r(a):a()}},Oa.prototype.render=function(e){this.u=null,this.o=new Map;var t=wt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},Oa.prototype.componentDidUpdate=Oa.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){pb(e,r,t)})};var hb=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,IC=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,AC=typeof document!="undefined",LC=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function PC(e,t,r){return t.__k==null&&(t.textContent=""),xn(e,t),typeof r=="function"&&r(),e?e.__c:null}function FC(e,t,r){return Qi(e,t),typeof r=="function"&&r(),e?e.__c:null}ht.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(ht.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var mb=fe.event;function NC(){}function OC(){return this.cancelBubble}function RC(){return this.defaultPrevented}fe.event=function(e){return mb&&(e=mb(e)),e.persist=NC,e.isPropagationStopped=OC,e.isDefaultPrevented=RC,e.nativeEvent=e};var gb,vb={configurable:!0,get:function(){return this.class}},yb=fe.vnode;fe.vnode=function(e){var t=e.type,r=e.props,n=r;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var a in n={},r){var o=r[a];AC&&a==="children"&&t==="noscript"||a==="value"&&"defaultValue"in r&&o==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&o===!0?o="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+t)&&!LC(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():i&&IC.test(a)?a=a.replace(/[A-Z0-9]/,"-$&").toLowerCase():o===null&&(o=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),n[a]&&(a="oninputCapture")),n[a]=o)}t=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.value.indexOf(s.props.value)!=-1})),t=="select"&&n.defaultValue!=null&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.multiple?n.defaultValue.indexOf(s.props.value)!=-1:n.defaultValue==s.props.value})),e.props=n,r.class!=r.className&&(vb.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",vb))}e.$$typeof=hb,yb&&yb(e)};var bb=fe.__r;fe.__r=function(e){bb&&bb(e),gb=e.__c};var HC={ReactCurrentDispatcher:{current:{readContext:function(e){return gb.__n[e.__c].props.value}}}};function BC(e){return h.bind(null,e)}function wb(e){return!!e&&e.$$typeof===hb}function KC(e){return wb(e)?so.apply(null,arguments):e}function $C(e){return!!e.__k&&(xn(null,e),!0)}function UC(e){return e&&(e.base||e.nodeType===1&&e)||null}var VC=function(e,t){return e(t)},WC=function(e,t){return e(t)};var at={useState:sr,useReducer:Zi,useEffect:Sn,useLayoutEffect:Lr,useRef:Xt,useImperativeHandle:co,useMemo:lr,useCallback:cr,useContext:uo,useDebugValue:fo,version:"17.0.2",Children:SC,render:PC,hydrate:FC,unmountComponentAtNode:$C,createPortal:MC,createElement:h,createContext:ai,createFactory:BC,cloneElement:KC,createRef:ri,Fragment:S,isValidElement:wb,findDOMNode:UC,Component:ht,PureComponent:kd,memo:EC,forwardRef:xC,flushSync:WC,unstable_batchedUpdates:VC,StrictMode:S,Suspense:Ns,SuspenseList:Oa,lazy:CC,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:HC};var zC=function(){if(typeof window=="undefined"||typeof window.addEventListener!="function")return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),r=function(){return null};return window.addEventListener("test",r,t),window.removeEventListener("test",r,t),e},jC="ignore-onclickoutside",Eb=function(t,r){var n;return(n=t.classList)==null?void 0:n.contains(r)},kb=function(t,r){for(var n=t.target||t;n;){if(Array.isArray(r)){if(r.some(function(i){return Eb(n,i)}))return!0}else if(Eb(n,r))return!0;n=n.parentElement}return!1},qC=function(t){return document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY},xb=function(t){return t.includes("touch")&&zC()?{passive:!0}:!1},YC=function(t,r){var n=r===void 0?{}:r,i=n.refs,a=n.disabled,o=n.eventTypes,s=o===void 0?["mousedown","touchstart"]:o,u=n.excludeScrollbar,l=n.ignoreClass,c=l===void 0?jC:l,d=n.detectIFrame,f=d===void 0?!0:d,p=sr([]),g=p[0],y=p[1],b=Xt(t);b.current=t;var x=cr(function(T){return y(function(C){return[].concat(C,[{current:T}])})},[]);return Sn(function(){if(!(!(i!=null&&i.length)&&!g.length)){var T=function(){var K=[];return(i||g).forEach(function(z){var U=z.current;return U&&K.push(U)}),K},C=function(K){!kb(K,c)&&!(u&&qC(K))&&T().every(function(z){return!z.contains(K.target)})&&b.current(K)},A=function(K){return setTimeout(function(){var z=document,U=z.activeElement;(U==null?void 0:U.tagName)==="IFRAME"&&!kb(U,c)&&!T().includes(U)&&b.current(K)},0)},H=function(){s.forEach(function(K){return document.removeEventListener(K,C,xb(K))}),f&&window.removeEventListener("blur",A)};if(a){H();return}return s.forEach(function(D){return document.addEventListener(D,C,xb(D))}),f&&window.addEventListener("blur",A),function(){return H()}}},[g,c,u,a,f,JSON.stringify(s)]),x},Fi=YC;function xd({addItems:e,isInputVisible:t,setIsInputVisible:r,hideButton:n}){let[i,a]=P.useState(""),{stateManager:o,view:s}=P.useContext(We),u=P.useRef(),l=Fi(()=>{r(!1)},{ignoreClass:B("ignore-click-outside")}),c=P.useCallback(()=>{a(""),r(!1)},[]),d=async g=>{try{e(await Promise.all(g.map(y=>o.getNewItem(y))))}catch(y){o.setError(y)}},f=g=>{if(!Xn(g,o)){g.preventDefault();let y=i.trim();y&&(d([y]),a(""))}},p=()=>{let g=i.trim();g&&(d([g]),a(""))};return t?h("div",{className:B("item-form"),ref:l},h("div",{className:B("item-input-wrapper")},h(xr,{ref:u,className:B("item-input"),placeholder:L("Card title..."),onEnter:f,onEscape:c,onSubmit:p,value:i,onChange:g=>{a(g.target.value)},onPaste:g=>{ws(g,o,s.getWindow())}}))):n?null:h("div",{className:B("item-button-wrapper")},h("button",{className:B("new-item-button"),onClick:()=>r(!0),onDragOver:g=>{bs(o,g.dataTransfer)&&r(!0)}},h("span",{className:B("item-button-plus")},"+")," ",L("Add a card")))}m();var Fb=me(Et());m();function Os(e,t){let r=t.end-t.start;return e.slice(0,t.start)+"\0".repeat(r)+e.slice(t.end)}function Sb(e){return e.replace(/\s*\0+\s*/g," ").trim()}function Ra(e){return e.trim().replace(/(\r\n|\n)/g,"
    ")}function Rs(e){return e.replace(/
    /g,` +`).trim()}function jr(e){e=Rs(e);let t=e.match(/^(.*?)\s*\((\d+)\)$/);return t==null?{title:e,maxItems:0}:{title:t[1],maxItems:Number(t[2])}}m();function _b(e){return h("svg",{...e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},h("path",{fill:"currentColor",d:"M5 3h2v2H5zm0 4h2v2H5zm0 4h2v2H5zm4-8h2v2H9zm0 4h2v2H9zm0 4h2v2H9z"}))}m();var Sd=me(Et()),Cb=me(require("obsidian"));var Db={delete:{description:L("Are you sure you want to delete this list and all its cards?"),confirm:L("Yes, delete list")},archive:{description:L("Are you sure you want to archive this list and all its cards?"),confirm:L("Yes, archive list")},"archive-items":{description:L("Are you sure you want to archive all cards in this list?"),confirm:L("Yes, archive cards")}};function Tb({action:e,cancel:t,onAction:r,lane:n}){return P.useEffect(()=>{e&&n.children.length===0&&r()},[e,n.children.length]),!e||e&&n.children.length===0?null:h("div",{className:B("action-confirm-wrapper")},h("div",{className:B("action-confirm-text")},Db[e].description),h("div",null,h("button",{onClick:r,className:B("confirm-action-button")},Db[e].confirm),h("button",{onClick:t,className:B("cancel-action-button")},"Cancel")))}function Mb({setIsEditing:e,path:t,lane:r}){let{stateManager:n,boardModifiers:i}=P.useContext(We),[a,o]=P.useState(null);return{settingsMenu:P.useMemo(()=>new Cb.Menu().addItem(u=>{u.setIcon("lucide-edit-3").setTitle(L("Edit list")).onClick(()=>e(!0))}).addItem(u=>{u.setIcon("lucide-archive").setTitle(L("Archive cards")).onClick(()=>o("archive-items"))}).addSeparator().addItem(u=>{u.setIcon("lucide-move-vertical").setTitle(L("Sort by card text")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===Mn.TitleAsc;l.sort((d,f)=>c?f.data.titleSearch.localeCompare(d.data.titleSearch):d.data.titleSearch.localeCompare(f.data.titleSearch)),i.updateLane(t,(0,Sd.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===Mn.TitleAsc?Mn.TitleDsc:Mn.TitleAsc}}}))})}).addItem(u=>{u.setIcon("lucide-move-vertical").setTitle(L("Sort by date")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===Mn.DateAsc?-1:1;l.sort((d,f)=>{let p=d.data.metadata.time||d.data.metadata.date,g=f.data.metadata.time||f.data.metadata.date;return p&&!g?-1*c:g&&!p?1*c:!p&&!g?0:(p.isBefore(g)?-1:1)*c}),i.updateLane(t,(0,Sd.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===Mn.DateAsc?Mn.DateDsc:Mn.DateAsc}}}))})}).addSeparator().addItem(u=>{u.setIcon("corner-left-down").setTitle(L("Insert list before")).onClick(()=>i.insertLane(t,{...kr,id:Ae(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}}))}).addItem(u=>{u.setIcon("lucide-corner-right-down").setTitle(L("Insert list after")).onClick(()=>{let l=[...t];l[l.length-1]=l[l.length-1]+1,i.insertLane(l,{...kr,id:Ae(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}})})}).addSeparator().addItem(u=>{u.setIcon("lucide-archive").setTitle(L("Archive list")).onClick(()=>o("archive"))}).addItem(u=>{u.setIcon("lucide-trash-2").setTitle(L("Delete list")).onClick(()=>o("delete"))}),[n,o,t,r]),confirmAction:a,setConfirmAction:o}}m();var Ib=me(Et());function Ab({lane:e,lanePath:t}){let{boardModifiers:r}=P.useContext(We);return h("div",{className:B("lane-setting-wrapper")},h("div",{className:B("checkbox-wrapper")},h("div",{className:B("checkbox-label")},L("Mark cards in this list as complete")),h("div",{onClick:()=>r.updateLane(t,(0,Ib.default)(e,{data:{$toggle:["shouldMarkItemsComplete"]}})),className:`checkbox-container ${e.data.shouldMarkItemsComplete?"is-enabled":""}`})))}m();var Lb=me(require("obsidian"));function Pb({itemCount:e,maxItems:t,isEditing:r,setIsEditing:n,title:i,onChange:a}){let{stateManager:o}=P.useContext(We),s=P.useRef(),u=o.getSetting("hide-card-count"),l=p=>{Xn(p,o)||(p.preventDefault(),r&&n(!1))},c=()=>{r&&n(!1)},d=()=>{r&&n(!1)};P.useEffect(()=>{if(r&&s.current){let p=s.current;s.current.focus(),p.selectionStart=p.selectionEnd=p.value.length}},[r]);let f=[B("lane-title-count")];return t&&t{p.preventDefault(),p.stopPropagation();let g=p.target instanceof p.view.HTMLAnchorElement&&p.target.hasClass("internal-link")?p.target.dataset.href:void 0;g&&o.app.workspace.onLinkContextMenu(p,(0,Lb.getLinkpath)(g),o.file.path)}},h(Fa,{markdownString:i})))),!r&&!u&&h("div",{className:et(f)},e,t>0&&h(S,null,h("span",{className:B("lane-title-count-separator")},"/"),h("span",{className:B("lane-title-count-limit")},t))))}var Nb=P.memo(function({lane:t,laneIndex:r,dragHandleRef:n,setIsItemInputVisible:i}){let{boardModifiers:a,stateManager:o}=P.useContext(We),[s,u]=P.useState(!1),l=Wn(r),{settingsMenu:c,confirmAction:d,setConfirmAction:f}=Mb({setIsEditing:u,path:l,lane:t});return P.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]),h(S,null,h("div",{onDblClick:()=>u(!0),className:B("lane-header-wrapper")},h("div",{className:B("lane-grip"),ref:n},h(_b,null)),h(Pb,{isEditing:s,setIsEditing:u,itemCount:t.children.length,maxItems:t.data.maxItems,title:t.data.title,onChange:p=>{let{title:g,maxItems:y}=jr(p.target.value);a.updateLane(l,(0,Fb.default)(t,{data:{title:{$set:g},maxItems:{$set:y}}}))}}),h("div",{className:B("lane-settings-button-wrapper")},s?h("a",{onClick:()=>{u(!1)},"aria-label":L("Close"),className:`${B("lane-settings-button")} is-enabled clickable-icon`},h(_t,{name:"lucide-x"})):h(S,null,i&&h("a",{"aria-label":L("Add a card"),className:`${B("lane-settings-button")} clickable-icon`,onClick:()=>{i(!0)},onDragOver:p=>{bs(o,p.dataTransfer)&&i(!0)}},h(_t,{name:"lucide-plus-circle"})),h("a",{"aria-label":L("More options"),className:`${B("lane-settings-button")} clickable-icon`,onClick:p=>{c.showAtPosition({x:p.clientX,y:p.clientY})}},h(_t,{name:"lucide-more-vertical"}))))),s&&h(Ab,{lane:t,lanePath:l}),d&&h(Tb,{lane:t,action:d,onAction:()=>{switch(d){case"archive":a.archiveLane(l);break;case"archive-items":a.archiveLaneItems(l);break;case"delete":a.deleteEntity(l);break}f(null)},cancel:()=>f(null)}))});var Rb=[Je.Item],_d=P.memo(function({isStatic:t,lane:r,laneIndex:n}){let{stateManager:i,boardModifiers:a,view:o}=P.useContext(We),[s,u]=P.useState(!1),l=Wn(n),c=i.useSetting("lane-width"),d=i.useSetting("new-card-insertion-method"),f=!!r.data.shouldMarkItemsComplete,p=c?{width:`${c}px`}:void 0,g=P.useRef(null),y=P.useRef(null),b=P.useRef(null),[x,T]=P.useState(!1),C=d==="prepend-compact",A=C||d==="prepend";Mi(y,b);let H=z=>{a[A?"prependItems":"appendItems"]([...l,r.children.length-1],z.map(U=>(0,Ob.default)(U,{data:{isComplete:{$set:f}}}))),o.getWindow().setTimeout(()=>{var Z;let U=(Z=g.current)==null?void 0:Z.getElementsByClassName(B("lane-items"));U.length&&As([0,A?0:U[0].scrollHeight],{elementToScroll:U[0],speed:200,minDuration:150,easing:J=>J===1?1:1-Math.pow(2,-10*J)})})},D=h(S,null,h(tb,{items:r.children,isStatic:t,shouldMarkItemsComplete:f}),h(Pi,{accepts:Rb,index:r.children.length,isStatic:t})),K=h(Fs,{id:r.id,index:n,className:et([B("lane-items"),B("vertical")]),triggerTypes:Rb,isStatic:t},t?D:h(Li,{onSortChange:T,axis:"vertical"},D));return h("div",{ref:y,className:et([B("lane-wrapper"),{"is-sorting":x}]),style:p},h("div",{"data-count":r.children.length,ref:g,className:et([B("lane"),{"will-prepend":A}])},h(Nb,{dragHandleRef:b,laneIndex:n,lane:r,setIsItemInputVisible:C?u:void 0}),A&&h(xd,{addItems:H,hideButton:C,isInputVisible:s,setIsInputVisible:u}),t?K:h(gr,{elementRef:g,measureRef:y,id:r.id,index:n,data:r},K),!A&&h(xd,{addItems:H,isInputVisible:s,setIsInputVisible:u})))}),Hb=P.memo(function({lanes:t}){return h(S,null,t.map((r,n)=>h(_d,{lane:r,laneIndex:n,key:r.id})))});m();m();var Bb=me(require("obsidian"));m();function Hs(){return{events:{},emit(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[e],a=this.events[n];if(!i&&!a){console.warn("Event emitted with no handler",e,r);return}r&&a&&a.forEach(o=>o(t)),i&&i.forEach(o=>o(t))},on(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];return i||(this.events[n]=i=[]),i.push(t),()=>this.off(e,t,r)},off(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];i&&(i.splice(i.indexOf(t)>>>0,1),i.length===0&&delete this.events[n])}}}var Cd=class{constructor(t,r){this.scrollResizeDebounce=0;this.handleResize=t=>{let r=!1;t.forEach(n=>{let i=Ze(n.target);this.win===i&&(r=!0,n.target.dataset.scrollid&&(this.win.clearTimeout(this.scrollResizeDebounce),this.scrollResizeDebounce=this.win.setTimeout(()=>{var a;((a=this.emitter.events.scrollResize)==null?void 0:a.length)&&this.emitter.emit("scrollResize",null)},50)))}),!!r&&(this.hitboxEntities.forEach(n=>{n.recalcInitial()}),this.scrollEntities.forEach(n=>{n.recalcInitial()}))};this.win=t,this.emitter=Hs(),this.hitboxEntities=new Map,this.scrollEntities=new Map,this.onDrop=r,this.resizeObserver=new ResizeObserver((0,Bb.debounce)(this.handleResize,100,!0)),this.dragManager=new Nu(t,this.emitter,this.hitboxEntities,this.scrollEntities)}destroy(){this.resizeObserver.disconnect()}observeResize(t){!t.instanceOf(HTMLElement)||this.resizeObserver.observe(t,{box:"border-box"})}unobserveResize(t){!t.instanceOf(HTMLElement)||this.resizeObserver.unobserve(t)}registerHitboxEntity(t,r,n){n===this.win&&this.hitboxEntities.set(t,r)}registerScrollEntity(t,r,n){n===this.win&&this.scrollEntities.set(t,r)}unregisterHitboxEntity(t,r){r===this.win&&this.hitboxEntities.delete(t)}unregisterScrollEntity(t,r){r===this.win&&this.scrollEntities.delete(t)}};function Bs({win:e,children:t,onDrop:r}){let n=P.useRef(r);n.current=r;let i=P.useMemo(()=>new Cd(e,(a,o)=>n.current(a,o)),[]);return P.useEffect(()=>()=>{i.destroy()},[i]),h(xt.Provider,{value:i},h(ob,null,t))}m();function Dd(e,t,r,n,i,a){let o=[r[0]-n[0],r[1]-n[1],r[2]+n[2],r[3]+n[3]];return{transform:a||`translate3d(${e.x-t.x+o[0]}px, ${e.y-t.y+o[1]}px, 0px)`,width:`${o[2]-o[0]}px`,height:`${o[3]-o[1]}px`,transition:i}}function Ks({children:e}){let t=P.useContext(xt),[r,n]=P.useState(),[i,a]=P.useState();return P.useEffect(()=>{if(!t)return;let o=Fp,s=({dragEntity:c,dragOrigin:d,dragPosition:f,dragEntityMargin:p})=>{!c||!f||!d||(o=c.getHitbox(),n(c),a(Dd(f,d,o,p)))},u=({dragOrigin:c,dragPosition:d,dragEntityMargin:f})=>{!d||!c||a(Dd(d,c,o,f))},l=({dragOrigin:c,primaryIntersection:d,dragPosition:f,dragEntityMargin:p})=>{if(d&&f&&c){let g=d.getHitbox(),y={x:g[0],y:g[1]},b=Di({position:f,destination:y}),x=ln.drop(b),T=lv.drop(y);a(Dd(f,c,o,p,x,T)),activeWindow.setTimeout(()=>{n(void 0),a(void 0)},b)}else n(void 0),a(void 0)};return t.dragManager.emitter.on("dragStart",s),t.dragManager.emitter.on("dragMove",u),t.dragManager.emitter.on("dragEnd",l),()=>{t.dragManager.emitter.off("dragStart",s),t.dragManager.emitter.off("dragMove",u),t.dragManager.emitter.off("dragEnd",l)}},[t]),!r||!i?null:P.createPortal(e(r,i),r.getData().win.document.body)}function Kb(){let e=P.useContext(xt),[t,r]=P.useState(!1);return P.useEffect(()=>{let n=()=>{r(!0)},i=({primaryIntersection:a,dragPosition:o})=>{let s=(a==null?void 0:a.getHitbox())||[0,0],u={x:s[0],y:s[1]},l=Di({position:o||u,destination:u});activeWindow.setTimeout(()=>{r(!1)},l)};return e.dragManager.emitter.on("dragStart",n),e.dragManager.emitter.on("dragEnd",i),()=>{e.dragManager.emitter.off("dragStart",n),e.dragManager.emitter.off("dragEnd",i)}},[e]),t}m();var Ha=me(Et()),$b=me(require("obsidian"));function $s(e){let t=r=>{let n=e.getSetting("prepend-archive-format"),i=e.getSetting("prepend-archive-separator"),a=[(0,$b.moment)().format(n)];i&&a.push(i),a.push(r.data.titleRaw);let o=a.join(" ");return e.updateItemContent(r,o)};return{appendItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>Bl(i,r,n))},prependItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>Mp(i,r,n))},insertItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>pr(i,r,n))},splitItem:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>pr(Fr(i,r),r,n))},moveItemToTop:r=>{e.setState(n=>aa(n,r,[r[0],0]))},moveItemToBottom:r=>{e.setState(n=>{let i=r[0],a=n.children[i];return aa(n,r,[i,a.children.length])})},addLane:r=>{e.app.workspace.trigger("kanban:lane-added",e.file,r),e.setState(n=>Bl(n,[],[r]))},insertLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-added",e.file,n),e.setState(i=>pr(i,r,[n]))},updateLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-updated",e.file,n),e.setState(i=>Kl(i,r,{children:{[r[r.length-1]]:{$set:n}}}))},archiveLane:r=>{e.setState(async n=>{let i=mt(n,r),a=i.children;e.app.workspace.trigger("kanban:lane-archived",e.file,i);try{return(0,Ha.default)(Fr(n,r),{data:{archive:{$unshift:e.getSetting("prepend-archive-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},archiveLaneItems:r=>{e.setState(async n=>{let a=mt(n,r).children;e.app.workspace.trigger("kanban:lane-cards-archived",e.file,a);try{return(0,Ha.default)(vo(n,r,{children:{$set:[]}}),{data:{archive:{$unshift:e.getSetting("prepend-archive-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},deleteEntity:r=>{e.setState(n=>{let i=mt(n,r);return e.app.workspace.trigger(`kanban:${i.type}-deleted`,e.file,i),Fr(n,r)})},updateItem:(r,n)=>{e.setState(i=>{let a=mt(i,r);return e.app.workspace.trigger("kanban:card-updated",e.file,a,n),Kl(i,r,{children:{[r[r.length-1]]:{$set:n}}})})},archiveItem:r=>{e.setState(async n=>{let i=mt(n,r);e.app.workspace.trigger("kanban:card-archived",e.file,r,i);try{return(0,Ha.default)(Fr(n,r),{data:{archive:{$push:[e.getSetting("prepend-archive-date")?await t(i):i]}}})}catch(a){return e.setError(a),n}})},duplicateEntity:r=>{e.setState(n=>{let i=mt(n,r);e.app.workspace.trigger(`kanban:${i.type}-duplicated`,e.file,r,i);let a=(0,Ha.default)(i,{id:{$set:Ae()}});return pr(n,r,[a])})}}}function Vb(e,t){return h(GC,{win:e,plugin:t})}var JC=P.memo(function({view:t}){return P.createPortal(t.getPortal(),t.contentEl)});function GC({win:e,plugin:t}){let r=t.useViewState(e),n=r.map(a=>h(JC,{key:a.id,view:a})),i=P.useCallback((a,o)=>{if(!a||!o)return;if(a.scopeId==="htmldnd"){let y=a.getData(),b=t.getStateManagerFromViewID(y.viewId,y.win),x=o.getPath(),T=mt(b.state,x.slice(0,-1));(A=>Promise.all(A.map(H=>b.getNewItem(H))))(y.content).then(A=>{let H=A.map(D=>{var K;return(0,Ub.default)(D,{data:{isComplete:{$set:!!((K=T==null?void 0:T.data)==null?void 0:K.shouldMarkItemsComplete)}}})});return b.setState(D=>pr(D,x,H))}).catch(A=>{b.setError(A),console.error(A)});return}let s=a.getPath(),u=o.getPath(),[,l]=a.scopeId.split(":::"),[,c]=o.scopeId.split(":::"),d=a.getData(),f=o.getData();if(l===c){let y=t.getStateManagerFromViewID(a.scopeId,d.win);return t.app.workspace.trigger("kanban:card-moved",y.file,s,u,d),y.setState(b=>{var H;let x=!1,T=aa(b,s,u,D=>D.type===Je.Item?(x=!0,Ul(b,s,b,u,D)):D);if(!x)return T;let C=u.slice(0,-1),A=mt(b,C);return((H=A==null?void 0:A.data)==null?void 0:H.sorted)!==void 0?vo(T,C,{data:{$unset:["sorted"]}}):T})}let p=t.getStateManagerFromViewID(a.scopeId,d.win),g=t.getStateManagerFromViewID(o.scopeId,f.win);p.setState(y=>{let b=mt(y,s);return g.setState(x=>{let T=b.type===Je.Item?Ul(y,s,x,u,b):b;return pr(x,u,[T])}),Fr(y,s)})},[r]);if(n.length)return h(Bs,{win:e,onDrop:i},n,h(Ks,null,(a,o)=>{let[s,u]=P.useMemo(()=>{if(a.scopeId==="htmldnd")return[null,null];let l=a.getData(),c=t.getKanbanView(a.scopeId,l.win),d=t.stateManagers.get(c.file),f=mt(d.state,a.getPath()),p=$s(d),g=c.file.path;return[f,{view:c,stateManager:d,boardModifiers:p,filePath:g,getTagColor:bo(d),getDateColor:wo(d)}]},[a]);return(s==null?void 0:s.type)===Je.Lane?h(We.Provider,{value:u},h("div",{className:B("drag-container"),style:o},h(_d,{lane:s,laneIndex:0,isStatic:!0}))):(s==null?void 0:s.type)===Je.Item?h(We.Provider,{value:u},h("div",{className:B("drag-container"),style:o},h(vd,{item:s,itemIndex:0,isStatic:!0}))):h("div",null)}))}m();var Wd=me(Et()),Lw=me(require("obsidian"));m();var Xb=me(Et()),Zb=me(require("obsidian")),Vs=me(yc());m();function Us({id:e,children:t}){let r=P.useContext(la),n=P.useMemo(()=>e||Ae(),[e]);return P.useEffect(()=>()=>{r.unmountScope(e)},[e]),h(mr.Provider,{value:n},t)}m();var gn="kanban-plugin",Wb;(function(t){t[t.List=0]="List"})(Wb||(Wb={}));var zb=`**${L("Complete")}**`,jb="***",Td=["---","",`${gn}: basic`,"","---","",""].join(` +`);function qb(e){return["","","%% kanban:settings","```",JSON.stringify(e),"```","%%"].join(` +`)}function Yb(e,t,r){let n=e.innerText.trim();if((t==null?void 0:t.length)&&(n+=" "+t.join(" ")),r){let i=Object.keys(r).join(" "),a=Object.values(r).map(o=>Array.isArray(o.value)?o.value.join(" "):o.value.toString()).join(" ");n+=" "+i+" "+a}return n.toLocaleLowerCase()}function QC(e,t,r){var n,i,a;if(e.plugins.enabledPlugins.has("dataview")&&((a=(i=(n=e.plugins)==null?void 0:n.plugins)==null?void 0:i.dataview)==null?void 0:a.api))return e.plugins.plugins.dataview.api.page(t.path,r.path)}function Jb(e,t){if(!e)return null;if(e[t])return e[t];let r=t.split("."),n=e;for(let i of r)if(typeof n=="object"&&i in n)n=n[i];else{n=null;break}return n}function Md(e,t){let r=e.getSetting("metadata-keys");if(!r.length)return{};if(!t)return{};let n=e.app.metadataCache.getFileCache(t),i=QC(e.app,t,e.file);if(!n&&!i)return{};let a={},o={},s={},u=[],l=!1;return r.forEach(c=>{var p;if(s[c.metadataKey])return;if(s[c.metadataKey]=!0,c.metadataKey==="tags"){let g=(n==null?void 0:n.tags)||[];if(Array.isArray((p=n==null?void 0:n.frontmatter)==null?void 0:p.tags)&&(g=[].concat(g,n.frontmatter.tags.map(y=>({tag:`#${y}`})))),(g==null?void 0:g.length)===0)return;u.push(c.metadataKey),a.tags={...c,value:g.map(y=>y.tag).filter(y=>o[y]?!1:(o[y]=!0,!0))},l=!0;return}let d=Jb(n==null?void 0:n.frontmatter,c.metadataKey),f=Jb(i,c.metadataKey);if(d)u.push(c.metadataKey),a[c.metadataKey]={...c,value:d},l=!0;else if(f){let g=i[c.metadataKey],y=g.values||g.val||g;if(y===g&&typeof y=="object")y={...g};else if(!Array.isArray(y)&&typeof y!="string"&&typeof y!="number")return;u.push(c.metadataKey),a[c.metadataKey]={...c,value:y},l=!0}}),{fileMetadata:l?a:void 0,fileMetadataOrder:u}}function Gb(e,t){return!e&&t?!0:!["metadata-keys","date-trigger","time-trigger","link-date-to-daily-note","date-format","time-format","hide-date-in-title","hide-tags-in-title","hide-card-count","tag-colors","date-colors"].every(n=>e[n]===t[n])}m();function Qb({onNewLane:e,closeLaneForm:t}){let{boardModifiers:r,stateManager:n}=P.useContext(We),[i,a]=P.useState(!1),[o,s]=P.useState(""),u=P.useRef(),l=Fi(()=>{t()},{ignoreClass:B("ignore-click-outside")});P.useLayoutEffect(()=>{var d;(d=u.current)==null||d.focus()},[]);let c=()=>{r.addLane({...kr,id:Ae(),children:[],data:{...jr(o),shouldMarkItemsComplete:i}}),s(""),a(!1),e()};return h("div",{ref:l,className:B("lane-form-wrapper")},h("div",{className:B("lane-input-wrapper")},h(xr,{ref:u,className:B("lane-input"),onChange:d=>s(d.target.value),onEnter:d=>{Xn(d,n)||(d.preventDefault(),c())},onSubmit:()=>{c()},onEscape:t,value:o})),h("div",{className:B("checkbox-wrapper")},h("div",{className:B("checkbox-label")},L("Mark cards in this list as complete")),h("div",{onClick:()=>a(!i),className:`checkbox-container ${i?"is-enabled":""}`})),h("div",{className:B("lane-input-actions")},h("button",{className:B("lane-action-add"),onClick:c},L("Add list")),h("button",{className:B("lane-action-cancel"),onClick:t},L("Cancel"))))}var XC=[Je.Item,Je.Lane],ZC=[Je.Lane],ew=({view:e,stateManager:t})=>{let r=t.useState(),n=Kb(),i=P.useRef(null),a=P.useRef(null),[o,s]=P.useState(""),[u,l]=P.useState(!1),[c,d]=P.useState(""),[f,p]=P.useState((r==null?void 0:r.children.length)===0),g=t.file.path,y=t.useSetting("max-archive-size"),b=t.useSetting("date-colors"),x=t.useSetting("tag-colors"),T=P.useCallback(()=>{(r==null?void 0:r.children.length)>0&&p(!1)},[r==null?void 0:r.children.length]);P.useEffect(()=>{(r==null?void 0:r.children.length)===0&&!t.hasError()&&p(!0)},[r==null?void 0:r.children.length,t]);let C=P.useCallback(()=>{var U;(U=i.current)==null||U.win.setTimeout(()=>{var J;let Z=(J=i.current)==null?void 0:J.getElementsByClassName(B("board"));(Z==null?void 0:Z.length)&&As([Z[0].scrollWidth,0],{elementToScroll:Z[0],speed:300,minDuration:150,easing:se=>se===1?1:1-Math.pow(2,-10*se)})})},[]);P.useEffect(()=>{let U=J=>{J==="editor:open-search"&&l(se=>!se)},Z=()=>{p(!0)};return e.emitter.on("hotkey",U),e.emitter.on("showLaneForm",Z),()=>{e.emitter.off("hotkey",U),e.emitter.off("showLaneForm",Z)}},[e]),P.useEffect(()=>{var U;u&&((U=a.current)==null||U.focus())},[u]),P.useEffect(()=>{let U=e.getWindow(),Z=o.trim(),J;return Z?J=U.setTimeout(()=>{d(Z)},250):d(""),()=>{U.clearTimeout(J)}},[o,e]),P.useEffect(()=>{y===void 0||y===-1||typeof y=="number"&&(r==null?void 0:r.data.archive.length)>y&&t.setState(U=>(0,Xb.default)(U,{data:{archive:{$set:U.data.archive.slice(y*-1)}}}))},[r==null?void 0:r.data.archive.length,y]);let A=P.useMemo(()=>$s(t),[t]),H=P.useCallback(U=>{let Z=U.target;Z.tagName==="A"&&Z.hasClass("internal-link")&&e.app.workspace.trigger("hover-link",{event:U,source:gn,hoverParent:e,targetEl:Z,linktext:Z.getAttr("href"),sourcePath:e.file.path})},[e]),D=P.useCallback(async U=>{if(U.type==="auxclick"||U.button===2)return;let Z=U.target,J=Z.tagName==="A"?Z:Z.closest("a");if(!!J){if(J.hasClass("file-link")){U.preventDefault();let se=J.getAttribute("href"),G=zr(se),Q=typeof se=="string"&&e.app.metadataCache.getFirstLinkpathDest(G.root,e.file.path);if(!Q)return;t.app.openWithDefaultApp(Q.path);return}if(J.hasClass("internal-link")){U.preventDefault();let se=J.getAttr("href"),G=U.button===1||U.ctrlKey||U.metaKey;if(J.hasClass("is-unresolved")&&(0,Vs.appHasDailyNotesPluginLoaded)()){let ie=t.getSetting("date-format"),he=(0,Zb.moment)(se,ie,!0);if(he.isValid()){try{let pe=await(0,Vs.createDailyNote)(he);await(G?app.workspace.getLeaf(!0):app.workspace.getLeaf(!1)).openFile(pe,{active:!0})}catch(pe){console.error(pe),t.setError(pe)}return}}t.app.workspace.openLinkText(se,g,G);return}if(J.hasClass("tag")){U.preventDefault(),t.app.internalPlugins.getPluginById("global-search").instance.openGlobalSearch(`tag:${J.getAttr("href")}`);return}J.hasClass("external-link")&&(U.preventDefault(),window.open(J.getAttr("href"),"_blank"))}},[t,g]),K=P.useMemo(()=>({view:e,stateManager:t,boardModifiers:A,filePath:g,getTagColor:bo(t),getDateColor:wo(t)}),[e,t,A,g,b,x]),z=uv(t);return r==null?h("div",{className:B("loading")},h("div",{className:"sk-pulse"})):r.data.errors.length>0?h("div",null,h("div",null,"Error:"),r.data.errors.map((U,Z)=>h("div",{key:Z},h("div",null,U.description),h("pre",null,U.stack)))):h(Us,{id:e.id},h(We.Provider,{value:K},h(go.Provider,{value:c?c.toLocaleLowerCase():null},h("div",{ref:i,className:et([$l,{"something-is-dragging":n}]),onMouseOver:H,onPointerDown:D,onClick:D,onAuxClick:D,...z},(f||r.children.length===0)&&h(Qb,{onNewLane:C,closeLaneForm:T}),u&&h("div",{className:B("search-wrapper")},h("input",{ref:a,value:o,onChange:U=>{s(U.target.value)},onKeyDown:U=>{U.key==="Escape"&&(s(""),d(""),U.target.blur(),l(!1))},type:"text",className:B("filter-input"),placeholder:L("Search...")}),h("a",{className:`${B("search-cancel-button")} clickable-icon`,onClick:()=>{s(""),d(""),l(!1)},"aria-label":L("Cancel")},h(_t,{name:"lucide-x"}))),h(Fs,{id:e.id,className:et([B("board"),B("horizontal"),{"is-adding-lane":f}]),triggerTypes:XC},h("div",null,h(Li,{axis:"horizontal"},h(Hb,{lanes:r.children}),h(Pi,{className:B("lane-placeholder"),accepts:ZC,index:r.children.length}))))))))};m();var Mw=me(Et()),Be=me(require("obsidian"));m();var nw=me(tw()),zs=me(Et()),_r=me(require("obsidian"));var js="@",qs="@@";function eD(e){let t=[];return _r.Vault.recurseChildren(e.vault.getRoot(),r=>{r instanceof _r.TFolder&&t.push({value:r.path,label:r.path,selected:!1,disabled:!1})}),t}function tD(e,t){let r=[],n=t?e.vault.getAbstractFileByPath(t):null;return(!n||!(n instanceof _r.TFolder))&&(n=e.vault.getRoot()),_r.Vault.recurseChildren(n,i=>{i instanceof _r.TFile&&r.push({value:i.path,label:i.basename,selected:!1,disabled:!1})}),r}function rw(e){let{templateFolder:t,templatesEnabled:r,templaterPlugin:n}=Vl(e),i=tD(e,t),a=eD(e),o="";return!r&&!n&&(o=L("Note: No template plugins are currently enabled.")),{templateFiles:i,vaultFolders:a,templateWarning:o}}function Ad({choices:e,key:t,warningText:r,local:n,placeHolderStr:i,manager:a}){return o=>{o.controlEl.createEl("select",{},s=>{s.win.setTimeout(()=>{let u=e,[l,c]=a.getSetting(t,n);if(c){let p=e.findIndex(y=>y.value===c),g=e[p];u=(0,zs.default)(u,{$splice:[[p,1]],$unshift:[(0,zs.default)(g,{placeholder:{$set:!0},value:{$set:""},label:{$apply:y=>`${y} (${L("default")})`}})]})}else u=(0,zs.default)(u,{$unshift:[{placeholder:!0,value:"",label:i,selected:!1,disabled:!1}]});let d=new nw.default(s,{placeholder:!0,position:"bottom",searchPlaceholderValue:L("Search..."),searchEnabled:u.length>10,choices:u}).setChoiceByValue("");l&&typeof l=="string"&&d.setChoiceByValue(l);let f=p=>{let g=p.detail.value;g?a.applySettingsUpdate({[t]:{$set:g}}):a.applySettingsUpdate({$unset:[t]})};s.addEventListener("change",f),a.cleanupFns.push(()=>{d.destroy(),s.removeEventListener("change",f)})}),r&&o.descEl.createDiv({},u=>{u.createEl("strong",{text:r})})})}}m();var qr=me(Et());function iw({isStatic:e,itemIndex:t,item:r,toggleShouldHideLabel:n,toggleContainsMarkdown:i,deleteKey:a,updateKey:o,updateLabel:s}){let u=P.useRef(null),l=P.useRef(null),c=P.useRef(null);Mi(l,c);let d=h("div",{className:B("setting-controls-wrapper")},h("div",{className:B("setting-input-wrapper")},h("div",null,h("div",{className:B("setting-item-label")},L("Metadata key")),h("input",{type:"text",value:r.data.metadataKey,onChange:f=>o(f.target.value)})),h("div",null,h("div",{className:B("setting-item-label")},L("Display label")),h("input",{type:"text",value:r.data.label,onChange:f=>s(f.target.value)}))),h("div",{className:B("setting-toggle-wrapper")},h("div",null,h("div",{className:`checkbox-container ${r.data.shouldHideLabel?"is-enabled":""}`,onClick:n,"aria-label":L("Hide label")}),h("div",{className:B("setting-item-label")},L("Hide label"))),h("div",null,h("div",{className:`checkbox-container ${r.data.containsMarkdown?"is-enabled":""}`,onClick:i,"aria-label":L("Field contains markdown")}),h("div",{className:B("setting-item-label")},L("Field contains markdown")))));return h("div",{ref:l,className:B("setting-item-wrapper")},h("div",{ref:u,className:B("setting-item")},e?d:h(gr,{elementRef:u,measureRef:l,id:r.id,index:t,data:r},d),h("div",{className:B("setting-button-wrapper")},h("div",{className:"clickable-icon",onClick:a,"aria-label":L("Delete")},h(_t,{name:"lucide-trash-2"})),h("div",{className:"mobile-option-setting-drag-icon clickable-icon","aria-label":L("Drag to rearrange"),ref:c},h(_t,{name:"lucide-grip-horizontal"})))))}function nD({onChange:e,inputValue:t,keys:r,setKeys:n}){let i=a=>{e(a),n(a)};return{updateKey:a=>o=>{i((0,qr.default)(r,{[a]:{data:{metadataKey:{$set:o}}}}))},updateLabel:a=>o=>{i((0,qr.default)(r,{[a]:{data:{label:{$set:o}}}}))},toggleShouldHideLabel:a=>()=>{i((0,qr.default)(r,{[a]:{data:{$toggle:["shouldHideLabel"]}}}))},toggleContainsMarkdown:a=>()=>{i((0,qr.default)(r,{[a]:{data:{$toggle:["containsMarkdown"]}}}))},deleteKey:a=>()=>{i((0,qr.default)(r,{$splice:[[a,1]]}))},newKey:()=>{i((0,qr.default)(r,{$push:[{...ms,id:Ae(),data:{metadataKey:t,label:"",shouldHideLabel:!1,containsMarkdown:!1}}]}))},moveKey:(a,o)=>{let s=a.getPath(),u=o.getPath(),l=s[s.length-1],c=u[u.length-1];if(l===c)return;let d=r.slice(),[f]=d.splice(l,1);d.splice(c,0,f),i(d)}}}var rD=[Je.MetadataSetting];function iD({keys:e,portalContainer:t}){return P.createPortal(h(Ks,null,(r,n)=>{let a=r.getPath()[0],o=e[a];return h("div",{className:B("drag-container"),style:n},h(iw,{item:o,itemIndex:a,updateKey:ci,updateLabel:ci,toggleShouldHideLabel:ci,toggleContainsMarkdown:ci,deleteKey:ci,isStatic:!0}))}),t)}function aD({scrollEl:e}){let t=P.useContext(xt);return P.useEffect(()=>{let r=0,n=()=>{e.win.clearTimeout(r),r=e.win.setTimeout(()=>{t.hitboxEntities.forEach(i=>{i.recalcInitial()})},100)};return e.addEventListener("scroll",n,{passive:!0,capture:!1}),()=>{e.removeEventListener("scroll",n)}},[e,t]),null}function oD(e){let[t,r]=P.useState(e.dataKeys),[n,i]=P.useState(""),{getShouldIMEBlockAction:a,...o}=yo(),s=Ze(e.scrollEl),{updateKey:u,updateLabel:l,toggleShouldHideLabel:c,toggleContainsMarkdown:d,deleteKey:f,newKey:p,moveKey:g}=nD({onChange:e.onChange,inputValue:n,keys:t,setKeys:r,win:s});return h(S,null,h(Bs,{win:s,onDrop:g},h(aD,{scrollEl:e.scrollEl}),h(Us,null,h(Li,{axis:"vertical"},t.map((y,b)=>h(iw,{key:y.id,item:y,itemIndex:b,updateKey:u(b),updateLabel:l(b),toggleShouldHideLabel:c(b),toggleContainsMarkdown:d(b),deleteKey:f(b)})),h(Pi,{accepts:rD,index:t.length}))),h(iD,{keys:t,portalContainer:e.portalContainer})),h("div",{className:B("setting-key-input-wrapper")},h("input",{placeholder:L("Metadata key"),type:"text",value:n,onChange:y=>i(y.target.value),onKeyDown:y=>{if(!a()){if(y.key==="Enter"){p(),i("");let b=y.target;b.win.setTimeout(()=>{b.scrollIntoView()});return}y.key==="Escape"&&(i(""),y.target.blur())}},...o}),h("button",{onClick:y=>{p(),i("");let b=y.target;b.win.setTimeout(()=>{b.scrollIntoView()})}},L("Add key"))))}function aw(e,t,r,n){P.render(h(oD,{dataKeys:r,scrollEl:t,onChange:n,portalContainer:ur(e)}),e)}function ow(e){P.unmountComponentAtNode(e)}m();m();var sD={grad:.9,turn:360,rad:360/(2*Math.PI)},er=function(e){return typeof e=="string"?e.length>0:typeof e=="number"},Ct=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r+0},vn=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e>t?e:t},sw=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},lw=function(e){return{r:vn(e.r,0,255),g:vn(e.g,0,255),b:vn(e.b,0,255),a:vn(e.a)}},Ld=function(e){return{r:Ct(e.r),g:Ct(e.g),b:Ct(e.b),a:Ct(e.a,3)}},lD=/^#([0-9a-f]{3,8})$/i,Ys=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},cw=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:60*(s<0?s+6:s),s:a?o/a*100:0,v:a/255*100,a:i}},uw=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),u=n*(1-(1-t+a)*r),l=a%6;return{r:255*[n,s,o,o,u,n][l],g:255*[u,n,n,s,o,o][l],b:255*[o,o,u,n,n,s][l],a:i}},dw=function(e){return{h:sw(e.h),s:vn(e.s,0,100),l:vn(e.l,0,100),a:vn(e.a)}},fw=function(e){return{h:Ct(e.h),s:Ct(e.s),l:Ct(e.l),a:Ct(e.a,3)}},pw=function(e){return uw((r=(t=e).s,{h:t.h,s:(r*=((n=t.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:t.a}));var t,r,n},Ba=function(e){return{h:(t=cw(e)).h,s:(i=(200-(r=t.s))*(n=t.v)/100)>0&&i<200?r*n/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,r,n,i},cD=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,uD=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,dD=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,fD=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,hw={string:[[function(e){var t=lD.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?Ct(parseInt(e[3]+e[3],16)/255,2):1}:e.length===6||e.length===8?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:e.length===8?Ct(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=dD.exec(e)||fD.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:lw({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=cD.exec(e)||uD.exec(e);if(!t)return null;var r,n,i=dw({h:(r=t[1],n=t[2],n===void 0&&(n="deg"),Number(r)*(sD[n]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return pw(i)},"hsl"]],object:[[function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=i===void 0?1:i;return er(t)&&er(r)&&er(n)?lw({r:Number(t),g:Number(r),b:Number(n),a:Number(a)}):null},"rgb"],[function(e){var t=e.h,r=e.s,n=e.l,i=e.a,a=i===void 0?1:i;if(!er(t)||!er(r)||!er(n))return null;var o=dw({h:Number(t),s:Number(r),l:Number(n),a:Number(a)});return pw(o)},"hsl"],[function(e){var t=e.h,r=e.s,n=e.v,i=e.a,a=i===void 0?1:i;if(!er(t)||!er(r)||!er(n))return null;var o=function(s){return{h:sw(s.h),s:vn(s.s,0,100),v:vn(s.v,0,100),a:vn(s.a)}}({h:Number(t),s:Number(r),v:Number(n),a:Number(a)});return uw(o)},"hsv"]]},mw=function(e,t){for(var r=0;r=.5},e.prototype.toHex=function(){return t=Ld(this.rgba),r=t.r,n=t.g,i=t.b,o=(a=t.a)<1?Ys(Ct(255*a)):"","#"+Ys(r)+Ys(n)+Ys(i)+o;var t,r,n,i,a,o},e.prototype.toRgb=function(){return Ld(this.rgba)},e.prototype.toRgbString=function(){return t=Ld(this.rgba),r=t.r,n=t.g,i=t.b,(a=t.a)<1?"rgba("+r+", "+n+", "+i+", "+a+")":"rgb("+r+", "+n+", "+i+")";var t,r,n,i,a},e.prototype.toHsl=function(){return fw(Ba(this.rgba))},e.prototype.toHslString=function(){return t=fw(Ba(this.rgba)),r=t.h,n=t.s,i=t.l,(a=t.a)<1?"hsla("+r+", "+n+"%, "+i+"%, "+a+")":"hsl("+r+", "+n+"%, "+i+"%)";var t,r,n,i,a},e.prototype.toHsv=function(){return t=cw(this.rgba),{h:Ct(t.h),s:Ct(t.s),v:Ct(t.v),a:Ct(t.a,3)};var t},e.prototype.invert=function(){return In({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},e.prototype.saturate=function(t){return t===void 0&&(t=.1),In(Pd(this.rgba,t))},e.prototype.desaturate=function(t){return t===void 0&&(t=.1),In(Pd(this.rgba,-t))},e.prototype.grayscale=function(){return In(Pd(this.rgba,-1))},e.prototype.lighten=function(t){return t===void 0&&(t=.1),In(gw(this.rgba,t))},e.prototype.darken=function(t){return t===void 0&&(t=.1),In(gw(this.rgba,-t))},e.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},e.prototype.alpha=function(t){return typeof t=="number"?In({r:(r=this.rgba).r,g:r.g,b:r.b,a:t}):Ct(this.rgba.a,3);var r},e.prototype.hue=function(t){var r=Ba(this.rgba);return typeof t=="number"?In({h:t,s:r.s,l:r.l,a:r.a}):Ct(r.h)},e.prototype.isEqual=function(t){return this.toHex()===In(t).toHex()},e}(),In=function(e){return e instanceof vw?e:new vw(e)};var Qs=me(Et());m();function Js(){return(Js=Object.assign||function(e){for(var t=1;t=0||(i[r]=e[r]);return i}function Nd(e){var t=Xt(e),r=Xt(function(n){t.current&&t.current(n)});return t.current=e,r.current}var Ni=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e0:b.buttons>0)&&i.current?a(bw(i.current,b,s.current)):y(!1)},g=function(){return y(!1)};function y(b){var x=u.current,T=Od(i.current),C=b?T.addEventListener:T.removeEventListener;C(x?"touchmove":"mousemove",p),C(x?"touchend":"mouseup",g)}return[function(b){var x=b.nativeEvent,T=i.current;if(T&&(ww(x),!function(A,H){return H&&!Ka(A)}(x,u.current)&&T)){if(Ka(x)){u.current=!0;var C=x.changedTouches||[];C.length&&(s.current=C[0].identifier)}T.focus(),a(bw(T,x,s.current)),y(!0)}},function(b){var x=b.which||b.keyCode;x<37||x>40||(b.preventDefault(),o({left:x===39?.05:x===37?-.05:0,top:x===40?.05:x===38?-.05:0}))},y]},[o,a]),c=l[0],d=l[1],f=l[2];return Sn(function(){return f},[f]),at.createElement("div",Js({},n,{onTouchStart:c,onMouseDown:c,className:"react-colorful__interactive",ref:i,onKeyDown:d,tabIndex:0,role:"slider"}))}),Gs=function(e){return e.filter(Boolean).join(" ")},Hd=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=Gs(["react-colorful__pointer",e.className]);return at.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},at.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Yt=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},d$={grad:.9,turn:360,rad:360/(2*Math.PI)};var Ew=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:Yt(e.h),s:Yt(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:Yt(i/2),a:Yt(n,2)}},Bd=function(e){var t=Ew(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},Kd=function(e){var t=Ew(e);return"hsla("+t.h+", "+t.s+"%, "+t.l+"%, "+t.a+")"},hD=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),u=n*(1-(1-t+a)*r),l=a%6;return{r:Yt(255*[n,s,o,o,u,n][l]),g:Yt(255*[u,n,n,s,o,o][l]),b:Yt(255*[o,o,u,n,n,s][l]),a:Yt(i,2)}};var mD=function(e){var t=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?gD({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):{h:0,s:0,v:0,a:1}};var gD=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:Yt(60*(s<0?s+6:s)),s:Yt(a?o/a*100:0),v:Yt(a/255*100),a:i}};var vD=at.memo(function(e){var t=e.hue,r=e.onChange,n=Gs(["react-colorful__hue",e.className]);return at.createElement("div",{className:n},at.createElement(Rd,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:Ni(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":Yt(t),"aria-valuemax":"360","aria-valuemin":"0"},at.createElement(Hd,{className:"react-colorful__hue-pointer",left:t/360,color:Bd({h:t,s:100,v:100,a:1})})))}),yD=at.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:Bd({h:t.h,s:100,v:100,a:1})};return at.createElement("div",{className:"react-colorful__saturation",style:n},at.createElement(Rd,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:Ni(t.s+100*i.left,0,100),v:Ni(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Yt(t.s)+"%, Brightness "+Yt(t.v)+"%"},at.createElement(Hd,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:Bd(t)})))}),bD=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0},wD=function(e,t){return e.replace(/\s/g,"")===t.replace(/\s/g,"")};function ED(e,t,r){var n=Nd(r),i=sr(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=Xt({color:t,hsva:a});Sn(function(){if(!e.equal(t,s.current.color)){var l=e.toHsva(t);s.current={hsva:l,color:t},o(l)}},[t,e]),Sn(function(){var l;bD(a,s.current.hsva)||e.equal(l=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:l},n(l))},[a,e,n]);var u=cr(function(l){o(function(c){return Object.assign({},c,l)})},[]);return[a,u]}var kD,xD=typeof window!="undefined"?Lr:Sn,SD=function(){return kD||(typeof __webpack_nonce__!="undefined"?__webpack_nonce__:void 0)};var kw=new Map,_D=function(e){xD(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!kw.has(t)){var r=t.createElement("style");r.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,kw.set(t,r);var n=SD();n&&r.setAttribute("nonce",n),t.head.appendChild(r)}},[])};var CD=function(e){var t=e.className,r=e.hsva,n=e.onChange,i={backgroundImage:"linear-gradient(90deg, "+Kd(Object.assign({},r,{a:0}))+", "+Kd(Object.assign({},r,{a:1}))+")"},a=Gs(["react-colorful__alpha",t]),o=Yt(100*r.a);return at.createElement("div",{className:a},at.createElement("div",{className:"react-colorful__alpha-gradient",style:i}),at.createElement(Rd,{onMove:function(s){n({a:s.left})},onKey:function(s){n({a:Ni(r.a+s.left)})},"aria-label":"Alpha","aria-valuetext":o+"%","aria-valuenow":o,"aria-valuemin":"0","aria-valuemax":"100"},at.createElement(Hd,{className:"react-colorful__alpha-pointer",left:r.a,color:Kd(r)})))},DD=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=yw(e,["className","colorModel","color","onChange"]),s=Xt(null);_D(s);var u=ED(r,i,a),l=u[0],c=u[1],d=Gs(["react-colorful",t]);return at.createElement("div",Js({},o,{ref:s,className:d}),at.createElement(yD,{hsva:l,onChange:c}),at.createElement(vD,{hue:l.h,onChange:c}),at.createElement(CD,{hsva:l,onChange:c,className:"react-colorful__last-control"}))};var TD={defaultColor:"rgba(0, 0, 0, 1)",toHsva:mD,fromHsva:function(e){var t=hD(e);return"rgba("+t.r+", "+t.g+", "+t.b+", "+t.a+")"},equal:wD},xw=function(e){return at.createElement(DD,Js({},e,{colorModel:TD}))};function Sw(e){let t=In(e);if(!t.isValid())return null;let r=t.toRgb();return{rgba:`rgba(${r.r}, ${r.g}, ${r.b}, ${r.a})`,hexa:t.toHex()}}function $a({color:e,setColor:t,defaultColor:r}){let[n,i]=P.useState(e||r),[a,o]=P.useState(e||r),[s,u]=P.useState(!1),l=P.useCallback(d=>{let f=Sw(d||r);f&&(o(f.hexa),i(f.rgba),t(f.rgba))},[t]);P.useEffect(()=>{if(!e||!r)return;let d=Sw(e||r);d&&(i(d.rgba),o(d.hexa))},[]);let c=Fi(()=>{u(!1)});return h("div",{ref:c,className:B("color-picker-wrapper")},s&&h("div",{className:B("color-picker")},h(xw,{color:n,onChange:l})),h("input",{type:"text",value:a,onChange:d=>l(d.target.value),onFocus:()=>{u(!0)}}))}function MD({tagColorKey:e,deleteKey:t,updateKey:r,defaultColors:n}){return h("div",{className:B("setting-item-wrapper")},h("div",{className:B("setting-item")},h("div",{className:`${B("setting-controls-wrapper")} ${B("tag-color-input")}`},h("div",{className:B("setting-input-wrapper")},h("div",null,h("div",{className:B("setting-item-label")},L("Tag")),h("input",{type:"text",placeholder:"#tag",value:e.tagKey,onChange:i=>{r(i.currentTarget.value,e.color,e.backgroundColor)}})),h("div",null,h("div",{className:B("setting-item-label")},L("Background color")),h($a,{color:e.backgroundColor,setColor:i=>{r(e.tagKey,e.color,i)},defaultColor:n.backgroundColor})),h("div",null,h("div",{className:B("setting-item-label")},L("Text color")),h($a,{color:e.color,setColor:i=>{r(e.tagKey,i,e.backgroundColor)},defaultColor:n.color}))),h("div",{className:B("setting-toggle-wrapper")},h("div",null,h("div",{className:B("item-tags")},h("a",{className:`tag ${B("item-tag")}`},"#tag1"),h("a",{className:`tag ${B("item-tag")}`,style:{"--tag-color":e.color,"--tag-background-color":e.backgroundColor}},e.tagKey||"#tag"),h("a",{className:`tag ${B("item-tag")}`},"#tag2"))))),h("div",{className:B("setting-button-wrapper")},h("div",{className:"clickable-icon",onClick:t,"aria-label":L("Delete")},h(_t,{name:"lucide-trash-2"})))))}function ID({dataKeys:e,onChange:t}){let[r,n]=P.useState(e),i=P.useMemo(()=>{let l=createDiv(B("item-tags")),c=l.createEl("a",B("item-tag"));l.style.position="absolute",l.style.visibility="hidden",activeDocument.body.append(l);let d=activeWindow.getComputedStyle(c),f=d.getPropertyValue("color").trim(),p=d.getPropertyValue("background-color").trim();return l.remove(),{color:f,backgroundColor:p}},[]),a=l=>{t(l),n(l)},o=()=>{a((0,Qs.default)(r,{$push:[{...gs,id:Ae(),data:{tagKey:"",color:"",backgroundColor:""}}]}))},s=l=>{a((0,Qs.default)(r,{$splice:[[l,1]]}))},u=l=>(c,d,f)=>{a((0,Qs.default)(r,{[l]:{data:{tagKey:{$set:c},color:{$set:d},backgroundColor:{$set:f}}}}))};return h("div",{className:B("tag-color-input-wrapper")},h("div",{className:"setting-item-info"},h("div",{className:"setting-item-name"},L("Display tag colors")),h("div",{className:"setting-item-description"},L("Set colors for the tags displayed below the card title."))),r.map((l,c)=>h(MD,{key:l.id,tagColorKey:l.data,deleteKey:()=>s(c),updateKey:u(c),defaultColors:i})),h("button",{className:B("add-tag-color-button"),onClick:()=>{o()}},L("Add tag color")))}function _w(e,t,r){P.render(h(ID,{dataKeys:t,onChange:r,portalContainer:ur(e)}),e)}function Cw(e){P.unmountComponentAtNode(e)}m();var Xs=me(Et());var $d=me(require("obsidian"));function AD({dateColorKey:e,deleteKey:t,updateKey:r,defaultColors:n,getTimeFormat:i,getDateFormat:a}){let o="between";return e.isToday&&(o="today"),e.isBefore&&(o="before"),e.isAfter&&(o="after"),h("div",{className:B("setting-item-wrapper")},h("div",{className:B("setting-item")},h("div",{className:`${B("setting-controls-wrapper")} ${B("tag-color-input")}`},h("div",null,h("div",null,h("div",{className:B("setting-item-label")},L("Date is"))),h("div",{className:B("date-color-config")},h("select",{className:"dropdown",defaultValue:o,onChange:s=>{let u={...e};switch(delete u.isAfter,delete u.isBefore,delete u.isToday,s.target.value){case"today":u.isToday=!0;break;case"before":u.isBefore=!0;break;case"after":u.isAfter=!0;break}r(u)}},h("option",{value:"between"},L("Between now and")),h("option",{value:"today"},L("Today")),h("option",{value:"after"},L("After now")),h("option",{value:"before"},L("Before now"))),!e.isToday&&!e.isAfter&&!e.isBefore&&h(S,null,h("input",{type:"number",value:e.distance,onChange:s=>{r({...e,distance:parseInt(s.target.value)})}}),h("select",{className:"dropdown",defaultValue:e.unit,onChange:s=>{r({...e,unit:s.target.value})}},h("option",{value:"hours"},"Hours"),h("option",{value:"days"},"Days"),h("option",{value:"weeks"},"Weeks"),h("option",{value:"months"},"Months")),h("select",{className:"dropdown",defaultValue:e.direction,onChange:s=>{r({...e,direction:s.target.value})}},h("option",{value:"after"},L("After now")),h("option",{value:"before"},L("Before now"))))),h("div",{className:B("date-color-config")},h("div",null,h("div",{className:B("setting-item-label")},L("Background color")),h($a,{color:e.backgroundColor,setColor:s=>{r({...e,backgroundColor:s})},defaultColor:n.backgroundColor})),h("div",null,h("div",{className:B("setting-item-label")},L("Text color")),h($a,{color:e.color,setColor:s=>{r({...e,color:s})},defaultColor:n.color})))),h("div",null,h("div",{className:B("date-color-wrapper")},h("div",{className:B("item-metadata")},h("span",{style:{"--date-color":e.color,"--date-background-color":e.backgroundColor},className:et([B("item-metadata-date-wrapper"),{"has-background":!!(e==null?void 0:e.backgroundColor)}])},h("span",{className:B("item-metadata-date is-button")},(0,$d.moment)().format(a()))," ",h("span",{className:B("item-metadata-time is-button")},(0,$d.moment)().format(i()))))))),h("div",{className:B("setting-button-wrapper")},h("div",{className:"clickable-icon",onClick:t,"aria-label":L("Delete")},h(_t,{name:"lucide-trash-2"})))))}function LD({dataKeys:e,onChange:t,getTimeFormat:r,getDateFormat:n}){let[i,a]=P.useState(e),o=P.useMemo(()=>{let d=createDiv(B("item-metadata")),f=d.createSpan(B("item-metadata-date"));d.style.position="absolute",d.style.visibility="hidden",activeDocument.body.append(d);let p=activeWindow.getComputedStyle(f),g=p.getPropertyValue("color").trim(),y=p.getPropertyValue("background-color").trim();return d.remove(),{color:g,backgroundColor:y}},[]),s=d=>{t(d),a(d)},u=()=>{s((0,Xs.default)(i,{$push:[{...vs,id:Ae(),data:{isToday:!1,distance:1,unit:"days",direction:"after"}}]}))},l=d=>{s((0,Xs.default)(i,{$splice:[[d,1]]}))},c=d=>f=>{s((0,Xs.default)(i,{[d]:{data:{$set:f}}}))};return h("div",{className:B("date-color-input-wrapper")},h("div",{className:"setting-item-info"},h("div",{className:"setting-item-name"},L("Display date colors")),h("div",{className:"setting-item-description"},L("Set colors for the date displayed below the card based on the rules below"))),i.map((d,f)=>h(AD,{key:d.id,dateColorKey:d.data,deleteKey:()=>l(f),updateKey:c(f),defaultColors:o,getTimeFormat:r,getDateFormat:n})),h("button",{className:B("add-tag-color-button"),onClick:u},L("Add date color")))}function Dw(e,t,r,n,i){P.render(h(LD,{dataKeys:t,onChange:r,portalContainer:ur(e),getDateFormat:n,getTimeFormat:i}),e)}function Tw(e){P.unmountComponentAtNode(e)}var Iw=/^\d+(?:\.\d+)?$/,Aw={[gn]:!0,"date-display-format":!0,"date-format":!0,"date-picker-week-start":!0,"date-time-display-format":!0,"date-trigger":!0,"hide-card-count":!0,"hide-date-display":!0,"hide-date-in-title":!0,"hide-tags-display":!0,"hide-tags-in-title":!0,"lane-width":!0,"link-date-to-daily-note":!0,"max-archive-size":!0,"metadata-keys":!0,"new-card-insertion-method":!0,"new-line-trigger":!0,"new-note-folder":!0,"new-note-template":!0,"prepend-archive-date":!0,"prepend-archive-format":!0,"prepend-archive-separator":!0,"show-checkboxes":!0,"show-relative-date":!0,"time-format":!0,"time-trigger":!0,"show-add-list":!0,"show-archive-all":!0,"show-view-as-markdown":!0,"show-board-settings":!0,"show-search":!0,"tag-colors":!0,"date-colors":!0},Ud=class{constructor(t,r,n){this.cleanupFns=[];this.applyDebounceTimer=0;this.app=t.app,this.plugin=t,this.config=r,this.settings=n}applySettingsUpdate(t){this.win.clearTimeout(this.applyDebounceTimer),this.applyDebounceTimer=this.win.setTimeout(()=>{this.settings=(0,Mw.default)(this.settings,t),this.config.onSettingsChange(this.settings)},200)}getSetting(t,r){return r?[this.settings[t],this.plugin.settings[t]]:[this.settings[t],null]}constructUI(t,r,n){this.win=t.win;let{templateFiles:i,vaultFolders:a,templateWarning:o}=rw(this.app);t.createEl("h3",{text:r}),n?t.createEl("p",{text:L("These settings will take precedence over the default Kanban board settings.")}):t.createEl("p",{text:L("Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.")}),new Be.Setting(t).setName(L("New line trigger")).setDesc(L("Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.")).addDropdown(s=>{s.addOption("shift-enter",L("Shift + Enter")),s.addOption("enter",L("Enter"));let[u,l]=this.getSetting("new-line-trigger",n);s.setValue(u||l||"shift-enter"),s.onChange(c=>{this.applySettingsUpdate({"new-line-trigger":{$set:c}})})}),new Be.Setting(t).setName(L("Prepend / append new cards")).setDesc(L("This setting controls whether new cards are added to the beginning or end of the list.")).addDropdown(s=>{s.addOption("prepend",L("Prepend")),s.addOption("prepend-compact",L("Prepend (compact)")),s.addOption("append",L("Append"));let[u,l]=this.getSetting("new-card-insertion-method",n);s.setValue(u||l||"append"),s.onChange(c=>{this.applySettingsUpdate({"new-card-insertion-method":{$set:c}})})}),new Be.Setting(t).setName(L("Note template")).setDesc(L("This template will be used when creating new notes from Kanban cards.")).then(Ad({choices:i,key:"new-note-template",warningText:o,local:n,placeHolderStr:L("No template"),manager:this})),new Be.Setting(t).setName(L("Note folder")).setDesc(L("Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.")).then(Ad({choices:a,key:"new-note-folder",local:n,placeHolderStr:L("Default folder"),manager:this})),new Be.Setting(t).setName(L("Hide card counts in list titles")).setDesc(L("When toggled, card counts are hidden from the list title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-card-count",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-card-count":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-card-count",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-card-count"]})})})}),new Be.Setting(t).setName(L("List width")).setDesc(L("Enter a number to set the list width in pixels.")).addText(s=>{let[u,l]=this.getSetting("lane-width",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"272"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Iw.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"lane-width":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["lane-width"]})})}),new Be.Setting(t).setName(L("Maximum number of archived cards")).setDesc(L("Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.")).addText(s=>{let[u,l]=this.getSetting("max-archive-size",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"-1"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Iw.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"max-archive-size":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["max-archive-size"]})})}),new Be.Setting(t).setName(L("Display card checkbox")).setDesc(L("When toggled, a checkbox will be displayed with each card")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-checkboxes",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-checkboxes":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-checkboxes",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-checkboxes"]})})})}),new Be.Setting(t).setName(L("Hide tags in card titles")).setDesc(L("When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-in-title"]})})})}),new Be.Setting(t).setName(L("Hide card display tags")).setDesc(L("When toggled, tags will not be displayed below the card title.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-display"]})})})}),new Be.Setting(t).setName(L("Display tag colors")).setDesc(L("Set colors for the tags displayed below the card title.")).then(s=>{let[u]=this.getSetting("tag-colors",n),l=(u||[]).map(c=>({...gs,id:Ae(),data:c}));_w(s.settingEl,l,c=>this.applySettingsUpdate({"tag-colors":{$set:c.map(d=>d.data)}})),this.cleanupFns.push(()=>{s.settingEl&&Cw(s.settingEl)})}),t.createEl("h4",{text:L("Board Header Buttons")}),new Be.Setting(t).setName(L("Add a list")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-add-list",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-add-list":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-add-list",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-add-list"]})})})}),new Be.Setting(t).setName(L("Archive completed cards")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-archive-all",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-archive-all":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-archive-all",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-archive-all"]})})})}),new Be.Setting(t).setName(L("Open as markdown")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-view-as-markdown",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-view-as-markdown":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-view-as-markdown",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-view-as-markdown"]})})})}),new Be.Setting(t).setName(L("Open board settings")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-board-settings",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-board-settings":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-board-settings",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-board-settings"]})})})}),new Be.Setting(t).setName(L("Search...")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-search",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-search":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-search",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-search"]})})})}),t.createEl("h4",{text:L("Date & Time")}),new Be.Setting(t).setName(L("Date trigger")).setDesc(L("When this is typed, it will trigger the date selector")).addText(s=>{let[u,l]=this.getSetting("date-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||js),s.onChange(c=>{c?this.applySettingsUpdate({"date-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["date-trigger"]})})}),new Be.Setting(t).setName(L("Time trigger")).setDesc(L("When this is typed, it will trigger the time selector")).addText(s=>{let[u,l]=this.getSetting("time-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||qs),s.onChange(c=>{c?this.applySettingsUpdate({"time-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["time-trigger"]})})}),new Be.Setting(t).setName(L("Date format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(L("This format will be used when saving dates in markdown.")),f.createEl("br"),f.appendText(L("For more syntax, refer to")+" "),f.createEl("a",{text:L("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(L("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-format",n),d=Nr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-format"]})})})}),new Be.Setting(t).setName(L("Time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(L("For more syntax, refer to")+" "),f.createEl("a",{text:L("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(L("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("time-format",n),d=ui(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"time-format":{$set:f}}):this.applySettingsUpdate({$unset:["time-format"]})})})}),new Be.Setting(t).setName(L("Date display format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(L("This format will be used when displaying dates in Kanban cards.")),f.createEl("br"),f.appendText(L("For more syntax, refer to")+" "),f.createEl("a",{text:L("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(L("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-display-format",n),d=Nr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-display-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-display-format"]})})})}),new Be.Setting(t).setName(L("Show relative date")).setDesc(L("When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-relative-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-relative-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-relative-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-relative-date"]})})})}),new Be.Setting(t).setName(L("Hide card display dates")).setDesc(L("When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-display"]})})})}),new Be.Setting(t).setName(L("Hide dates in card titles")).setDesc(L("When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-in-title"]})})})}),new Be.Setting(t).setName(L("Display date colors")).setDesc(L("Set colors for the date displayed below the card based on the rules below")).then(s=>{let[u]=this.getSetting("date-colors",n),l=(u||[]).map(c=>({...vs,id:Ae(),data:c}));Dw(s.settingEl,l,c=>this.applySettingsUpdate({"date-colors":{$set:c.map(d=>d.data)}}),()=>{let[c,d]=this.getSetting("date-display-format",n),f=Nr(this.app);return c||d||f},()=>{let[c,d]=this.getSetting("time-format",n),f=ui(this.app);return c||d||f}),this.cleanupFns.push(()=>{s.settingEl&&Tw(s.settingEl)})}),new Be.Setting(t).setName(L("Link dates to daily notes")).setDesc(L("When toggled, dates will link to daily notes. Eg. [[2021-04-26]]")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("link-date-to-daily-note",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"link-date-to-daily-note":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("link-date-to-daily-note",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["link-date-to-daily-note"]})})})}),new Be.Setting(t).setName(L("Add date and time to archived cards")).setDesc(L("When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("prepend-archive-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"prepend-archive-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(L("Reset to default")).onClick(()=>{let[,c]=this.getSetting("prepend-archive-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["prepend-archive-date"]})})})}),new Be.Setting(t).setName(L("Archive date/time separator")).setDesc(L("This will be used to separate the archived date/time from the title")).addText(s=>{let[u,l]=this.getSetting("prepend-archive-separator",n);s.inputEl.placeholder=l?`${l} (default)`:"",s.inputEl.value=u||"",s.onChange(c=>{if(c){this.applySettingsUpdate({"prepend-archive-separator":{$set:c}});return}this.applySettingsUpdate({$unset:["prepend-archive-separator"]})})}),new Be.Setting(t).setName(L("Archive date/time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(T=>{T.appendText(L("For more syntax, refer to")+" "),T.createEl("a",{text:L("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},C=>{C.setAttr("target","_blank")}),T.createEl("br"),T.appendText(L("Your current syntax looks like this")+": "),u.setSampleEl(T.createEl("b",{cls:"u-pop"})),T.createEl("br")}));let[l,c]=this.getSetting("prepend-archive-format",n),[d,f]=this.getSetting("date-format",n),p=d||f||Nr(this.app),[g,y]=this.getSetting("time-format",n),b=g||y||ui(this.app),x=`${p} ${b}`;u.setPlaceholder(x),u.setDefaultFormat(x),(l||c)&&u.setValue(l||c),u.onChange(T=>{T?this.applySettingsUpdate({"prepend-archive-format":{$set:T}}):this.applySettingsUpdate({$unset:["prepend-archive-format"]})})})}),new Be.Setting(t).setName(L("Calendar: first day of week")).setDesc(L("Override which day is used as the start of the week")).addDropdown(s=>{s.addOption("",L("default")),s.addOption("0",L("Sunday")),s.addOption("1",L("Monday")),s.addOption("2",L("Tuesday")),s.addOption("3",L("Wednesday")),s.addOption("4",L("Thursday")),s.addOption("5",L("Friday")),s.addOption("6",L("Saturday"));let[u,l]=this.getSetting("date-picker-week-start",n);s.setValue((u==null?void 0:u.toString())||(l==null?void 0:l.toString())||""),s.onChange(c=>{c?this.applySettingsUpdate({"date-picker-week-start":{$set:Number(c)}}):this.applySettingsUpdate({$unset:["date-picker-week-start"]})})}),t.createEl("br"),t.createEl("h4",{text:L("Linked Page Metadata")}),t.createEl("p",{cls:B("metadata-setting-desc"),text:L("Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.")}),new Be.Setting(t).then(s=>{s.settingEl.addClass(B("draggable-setting-container"));let[u]=this.getSetting("metadata-keys",n),l=(u||[]).map(c=>({...ms,id:Ae(),data:c,win:Ze(t)}));aw(s.settingEl,t,l,c=>this.applySettingsUpdate({"metadata-keys":{$set:c.map(d=>d.data)}})),this.cleanupFns.push(()=>{s.settingEl&&ow(s.settingEl)})})}cleanUp(){this.win=null,this.cleanupFns.forEach(t=>t()),this.cleanupFns=[]}},Zs=class extends Be.Modal{constructor(t,r,n){super(t.app);this.view=t,this.settingsManager=new Ud(t.plugin,r,n)}onOpen(){let{contentEl:t,modalEl:r}=this;r.addClass(B("board-settings-modal")),this.settingsManager.constructUI(t,this.view.file.basename,!0)}onClose(){let{contentEl:t}=this;this.settingsManager.cleanUp(),t.empty()}},Vd=class extends Be.PluginSettingTab{constructor(t,r){super(t.app,t);this.plugin=t,this.settingsManager=new Ud(t,r,t.settings)}display(){let{containerEl:t}=this;t.empty(),t.addClass(B("board-settings-modal")),this.settingsManager.constructUI(t,L("Kanban Plugin"),!1)}};var yn="kanban",Ua="lucide-trello",tr=class extends Lw.TextFileView{constructor(t,r){super(t);this.actionButtons={};this.plugin=r,this.emitter=Hs(),this.emitter.on("hotkey",n=>{switch(n){case"daily-notes:goto-prev":{Vm(this.app,this.file);break}case"daily-notes:goto-next":{Um(this.app,this.file);break}}}),this.register(this.containerEl.onWindowMigrated(()=>{this.plugin.removeView(this),this.plugin.addView(this,this.data,this.isPrimary)}))}get isPrimary(){var t;return((t=this.plugin.getStateManager(this.file))==null?void 0:t.getAView())===this}get id(){var t;return`${this.leaf.id}:::${(t=this.file)==null?void 0:t.path}`}get isShiftPressed(){return this.plugin.isShiftPressed}setBoard(t,r=!0){this.plugin.stateManagers.get(this.file).setState(t,r)}getBoard(){return this.plugin.stateManagers.get(this.file).state}getViewType(){return yn}getIcon(){return Ua}getDisplayText(){var t;return((t=this.file)==null?void 0:t.basename)||"Kanban"}getWindow(){return Ze(this.containerEl)}async onLoadFile(t){try{return await super.onLoadFile(t)}catch(r){throw this.plugin.stateManagers.get(this.file).setError(r),r}}destroy(){this.plugin.removeView(this),Object.values(this.actionButtons).forEach(t=>t.remove()),this.actionButtons={}}async onClose(){this.destroy()}async onUnloadFile(t){return this.destroy(),await super.onUnloadFile(t)}handleRename(t,r){this.file.path===t&&this.plugin.handleViewFileRename(this,r)}requestSaveToDisk(t){this.data!==t&&this.isPrimary?(this.data=t,this.requestSave()):this.data=t}getViewData(){return this.data}setViewData(t,r){if(!Wm(t)){this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.removeView(this),this.plugin.setMarkdownView(this.leaf,!1);return}this.plugin.addView(this,t,!r&&this.isPrimary)}getPortal(){let t=this.plugin.stateManagers.get(this.file);return h(ew,{stateManager:t,view:this})}onPaneMenu(t,r,n=!0){if(r!=="more-options"){super.onPaneMenu(t,r);return}t.addItem(i=>{i.setTitle(L("Open as markdown")).setIcon("lucide-file-text").setSection("pane").onClick(()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)})}).addItem(i=>{i.setTitle(L("Open board settings")).setIcon("lucide-settings").setSection("pane").onClick(()=>{let a=this.plugin.stateManagers.get(this.file),o=a.state;new Zs(this,{onSettingsChange:s=>{let u=(0,Wd.default)(o,{data:{settings:{$set:s}}});a.setState(u)}},o.data.settings).open()})}).addItem(i=>{i.setTitle(L("Archive completed cards")).setIcon("lucide-archive").setSection("pane").onClick(()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()})}),n&&super.onPaneMenu(t,r)}initHeaderButtons(){let t=this.plugin.getStateManager(this.file);if(!!t)if(t.getSetting("show-board-settings")&&!this.actionButtons["show-board-settings"]?this.actionButtons["show-board-settings"]=this.addAction("lucide-settings",L("Open board settings"),()=>{let r=this.plugin.stateManagers.get(this.file),n=r.state;new Zs(this,{onSettingsChange:i=>{let a=(0,Wd.default)(n,{data:{settings:{$set:i}}});r.setState(a)}},n.data.settings).open()}):!t.getSetting("show-board-settings")&&this.actionButtons["show-board-settings"]&&(this.actionButtons["show-board-settings"].remove(),delete this.actionButtons["show-board-settings"]),t.getSetting("show-search")&&!this.actionButtons["show-search"]?this.actionButtons["show-search"]=this.addAction("lucide-search",L("Search..."),()=>{this.emitter.emit("hotkey","editor:open-search")}):!t.getSetting("show-search")&&this.actionButtons["show-search"]&&(this.actionButtons["show-search"].remove(),delete this.actionButtons["show-search"]),t.getSetting("show-view-as-markdown")&&!this.actionButtons["show-view-as-markdown"]?this.actionButtons["show-view-as-markdown"]=this.addAction("lucide-file-text",L("Open as markdown"),()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}):!t.getSetting("show-view-as-markdown")&&this.actionButtons["show-view-as-markdown"]&&(this.actionButtons["show-view-as-markdown"].remove(),delete this.actionButtons["show-view-as-markdown"]),t.getSetting("show-archive-all")&&!this.actionButtons["show-archive-all"]?this.actionButtons["show-archive-all"]=this.addAction("lucide-archive",L("Archive completed cards"),()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()}):!t.getSetting("show-archive-all")&&this.actionButtons["show-archive-all"]&&(this.actionButtons["show-archive-all"].remove(),delete this.actionButtons["show-archive-all"]),t.getSetting("show-add-list")&&!this.actionButtons["show-add-list"]){let r=this.addAction("lucide-plus-circle",L("Add a list"),()=>{this.emitter.emit("showLaneForm",void 0)});r.addClass(B("ignore-click-outside")),this.actionButtons["show-add-list"]=r}else!t.getSetting("show-add-list")&&this.actionButtons["show-add-list"]&&(this.actionButtons["show-add-list"].remove(),delete this.actionButtons["show-add-list"])}clear(){}};m();var Vi=me(Et()),YE=me(require("obsidian"));m();m();var zd={};qi(zd,{JsonPatchError:()=>ot,_areEquals:()=>za,applyOperation:()=>Yr,applyPatch:()=>al,applyReducer:()=>RD,deepClone:()=>ND,getValueByPointer:()=>il,validate:()=>Fw,validator:()=>ol});m();m();var PD=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)i.hasOwnProperty(a)&&(n[a]=i[a])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),FD=Object.prototype.hasOwnProperty;function el(e,t){return FD.call(e,t)}function tl(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&n<=57){t++;continue}return!1}return!0}function Hn(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function Va(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function rl(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&u[c-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&f===void 0&&(l[p]===void 0?f=u.slice(0,c).join("/"):c==d-1&&(f=t.path),f!==void 0&&g(t,0,e,f)),c++,Array.isArray(l)){if(p==="-")p=l.length;else{if(r&&!nl(p))throw new ot("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a,t,e);nl(p)&&(p=~~p)}if(c>=d){if(r&&t.op==="add"&&p>l.length)throw new ot("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a,t,e);var o=OD[t.op].call(t,l,p,e);if(o.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}}else if(c>=d){var o=Oi[t.op].call(t,l,p,e);if(o.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}if(l=l[p],r&&c0)throw new ot('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new ot("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&rl(e.value))throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var i=e.path.split("/").length,a=n.split("/").length;if(i!==a+1&&i!==a)throw new ot("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==n)throw new ot("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var o={op:"_get",path:e.from,value:void 0},s=Fw([o],r);if(s&&s.name==="OPERATION_PATH_UNRESOLVABLE")throw new ot("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new ot("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function Fw(e,t,r){try{if(!Array.isArray(e))throw new ot("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)al(Ft(t),Ft(e),r||!0);else{r=r||ol;for(var n=0;nJd,generate:()=>qd,observe:()=>WD,unobserve:()=>VD});m();var jd=new WeakMap,HD=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),BD=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function KD(e){return jd.get(e)}function $D(e,t){return e.observers.get(t)}function UD(e,t){e.observers.delete(t.callback)}function VD(e,t){t.unobserve()}function WD(e,t){var r=[],n,i=KD(e);if(!i)i=new HD(e),jd.set(e,i);else{var a=$D(i,t);n=a&&a.observer}if(n)return n;if(n={},i.value=Ft(e),t){n.callback=t,n.next=null;var o=function(){qd(n)},s=function(){clearTimeout(n.next),n.next=setTimeout(o)};typeof window!="undefined"&&(window.addEventListener("mouseup",s),window.addEventListener("keyup",s),window.addEventListener("mousedown",s),window.addEventListener("keydown",s),window.addEventListener("change",s))}return n.patches=r,n.object=e,n.unobserve=function(){qd(n),clearTimeout(n.next),UD(i,n),typeof window!="undefined"&&(window.removeEventListener("mouseup",s),window.removeEventListener("keyup",s),window.removeEventListener("mousedown",s),window.removeEventListener("keydown",s),window.removeEventListener("change",s))},i.observers.set(t,new BD(t,n)),n}function qd(e,t){t===void 0&&(t=!1);var r=jd.get(e.object);Yd(r.value,e.object,e.patches,"",t),e.patches.length&&al(r.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function Yd(e,t,r,n,i){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var a=tl(t),o=tl(e),s=!1,u=!1,l=o.length-1;l>=0;l--){var c=o[l],d=e[c];if(el(t,c)&&!(t[c]===void 0&&d!==void 0&&Array.isArray(t)===!1)){var f=t[c];typeof d=="object"&&d!=null&&typeof f=="object"&&f!=null&&Array.isArray(d)===Array.isArray(f)?Yd(d,f,r,n+"/"+Hn(c),i):d!==f&&(s=!0,i&&r.push({op:"test",path:n+"/"+Hn(c),value:Ft(d)}),r.push({op:"replace",path:n+"/"+Hn(c),value:Ft(f)}))}else Array.isArray(e)===Array.isArray(t)?(i&&r.push({op:"test",path:n+"/"+Hn(c),value:Ft(d)}),r.push({op:"remove",path:n+"/"+Hn(c)}),u=!0):(i&&r.push({op:"test",path:n,value:e}),r.push({op:"replace",path:n,value:t}),s=!0)}if(!(!u&&a.length==o.length))for(var l=0;l":""))+")"})),f;function f(){let p=[],g,y,b;if((!t||i(s,u,l[l.length-1]||null))&&(p=JD(r(s,l)),p[0]===Xd))return p;if(s.children&&p[0]!==$w)for(y=(n?s.children.length:-1)+a,b=l.concat(s);y>-1&&y!0){for(let i=t+1,a=e.length;i{try{await jw(e,r),await Promise.all(r.children.map(n=>qa(e,n)))}catch(n){throw e.setError(n),n}}))}catch(r){throw e.setError(r),r}return t}function GD(e){return(e.op==="add"||e.op==="replace")&&["/title","/titleRaw","/dateStr","/timeStr",/\d$/,/\/fileAccessor\/.+$/].some(t=>typeof t=="string"?e.path.endsWith(t):t.test(e.path))}async function Yw(e,t,r){let n={},i=r.reduce((a,o)=>{if(!GD(o))return a;let s=o.path.split("/").reduce((l,c)=>(/\d+/.test(c)&&l.push(Number(c)),l),[]),u=s.join(",");return n[u]||(n[u]=!0,a.push(s)),a},[]);try{await Promise.all(i.map(a=>{let o=mt(t,a);if(o.type===Je.Lane)return jw(e,o);if(o.type===Je.Item)return qa(e,o)}))}catch(a){throw e.setError(a),a}return t}m();m();m();m();m();m();function Nt(e,t,r,n){let i=e.length,a=0,o;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,r=r>0?r:0,n.length<1e4)o=Array.from(n),o.unshift(t,r),[].splice.apply(e,o);else for(r&&[].splice.apply(e,[t,r]);a0?(Nt(e,e.length,0,t),e):t}var Jw={}.hasOwnProperty;function Gw(e){let t={},r=-1;for(;++ro))return;let K=t.events.length,z=K,U,Z;for(;z--;)if(t.events[z][0]==="exit"&&t.events[z][1].type==="chunkFlow"){if(U){Z=t.events[z][1].end;break}U=!0}for(x(n),D=K;DC;){let H=r[A];t.containerState=H[1],H[0].exit.call(t,e)}r.length=C}function T(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function tT(e,t,r){return Se(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}m();m();m();m();function rf(e){if(e===null||Qe(e)||eE(e))return 1;if(tE(e))return 2}m();function Ri(e,t,r){let n=[],i=-1;for(;++i1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;let d=Object.assign({},e[n][1].end),f=Object.assign({},e[r][1].start);aE(d,-u),aE(f,u),o={type:u>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},s={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[r][1].start),end:f},a={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[r][1].start)},i={type:u>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},s.end)},e[n][1].end=Object.assign({},o.start),e[r][1].start=Object.assign({},s.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=Jt(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=Jt(l,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),l=Jt(l,Ri(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),l=Jt(l,[["exit",a,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[r][1].end.offset-e[r][1].start.offset?(c=2,l=Jt(l,[["enter",e[r][1],t],["exit",e[r][1],t]])):c=0,Nt(e,n-1,r-n+3,l),r=n+l.length-c-2;break}}for(r=-1;++r",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xCD",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacute:"\xD3",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslash:"\xD8",Otilde:"\xD5",Otimes:"\u2A37",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acirc:"\xE2",acute:"\xB4",acy:"\u0430",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atilde:"\xE3",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedil:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\u2256",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",eth:"\xF0",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xED",ic:"\u2063",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslash:"\xF8",osol:"\u2298",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",ouml:"\xF6",ovbar:"\u233D",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thorn:"\xFE",tilde:"\u02DC",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"};var uT={}.hasOwnProperty;function Hi(e){return uT.call(of,e)?of[e]:!1}var dl={name:"characterReference",tokenize:dT};function dT(e,t,r){let n=this,i=0,a,o;return s;function s(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),u}function u(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),a=31,o=Gt,c(d))}function l(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,o=Xw,c):(e.enter("characterReferenceValue"),a=7,o=Ya,c(d))}function c(d){let f;return d===59&&i?(f=e.exit("characterReferenceValue"),o===Gt&&!Hi(n.sliceSerialize(f))?r(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)):o(d)&&i++=4?o(l):r(l)}function o(l){return l===null?u(l):ce(l)?e.attempt(pT,o,u)(l):(e.enter("codeFlowValue"),s(l))}function s(l){return l===null||ce(l)?(e.exit("codeFlowValue"),o(l)):(e.consume(l),s)}function u(l){return e.exit("codeIndented"),t(l)}}function mT(e,t,r){let n=this;return i;function i(o){return n.parser.lazy[n.now().line]?r(o):ce(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Se(e,a,"linePrefix",4+1)(o)}function a(o){let s=n.events[n.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(o):ce(o)?i(o):r(o)}}m();var sf={name:"codeText",tokenize:yT,resolve:gT,previous:vT};function gT(e){let t=e.length-4,r=3,n,i;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=r;++n=4?t(o):e.interrupt(n.parser.constructs.flow,r,t)(o)}}m();m();function hl(e,t,r,n,i,a,o,s,u){let l=u||Number.POSITIVE_INFINITY,c=0;return d;function d(x){return x===60?(e.enter(n),e.enter(i),e.enter(a),e.consume(x),e.exit(a),f):x===null||x===41||Ja(x)?r(x):(e.enter(n),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),y(x))}function f(x){return x===62?(e.enter(a),e.consume(x),e.exit(a),e.exit(i),e.exit(n),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===62?(e.exit("chunkString"),e.exit(s),f(x)):x===null||x===60||ce(x)?r(x):(e.consume(x),x===92?g:p)}function g(x){return x===60||x===62||x===92?(e.consume(x),p):p(x)}function y(x){return x===40?++c>l?r(x):(e.consume(x),y):x===41?c--?(e.consume(x),y):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(x)):x===null||Qe(x)?c?r(x):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(x)):Ja(x)?r(x):(e.consume(x),x===92?b:y)}function b(x){return x===40||x===41||x===92?(e.consume(x),y):y(x)}}m();function ml(e,t,r,n,i,a){let o=this,s=0,u;return l;function l(p){return e.enter(n),e.enter(i),e.consume(p),e.exit(i),e.enter(a),c}function c(p){return p===null||p===91||p===93&&!u||p===94&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs||s>999?r(p):p===93?(e.exit(a),e.enter(i),e.consume(p),e.exit(i),e.exit(n),t):ce(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||ce(p)||s++>999?(e.exit("chunkString"),c(p)):(e.consume(p),u=u||!Ke(p),p===92?f:d)}function f(p){return p===91||p===92||p===93?(e.consume(p),s++,d):d(p)}}m();function gl(e,t,r,n,i,a){let o;return s;function s(f){return e.enter(n),e.enter(i),e.consume(f),e.exit(i),o=f===40?41:f,u}function u(f){return f===o?(e.enter(i),e.consume(f),e.exit(i),e.exit(n),t):(e.enter(a),l(f))}function l(f){return f===o?(e.exit(a),u(o)):f===null?r(f):ce(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Se(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(f){return f===o||f===null||ce(f)?(e.exit("chunkString"),l(f)):(e.consume(f),f===92?d:c)}function d(f){return f===o||f===92?(e.consume(f),c):c(f)}}m();function Jr(e,t){let r;return n;function n(i){return ce(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),r=!0,n):Ke(i)?Se(e,n,r?"linePrefix":"lineSuffix")(i):t(i)}}m();function nr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var cf={name:"definition",tokenize:_T},ST={tokenize:CT,partial:!0};function _T(e,t,r){let n=this,i;return a;function a(u){return e.enter("definition"),ml.call(n,e,o,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}function o(u){return i=nr(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),u===58?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),Jr(e,hl(e,e.attempt(ST,Se(e,s,"whitespace"),Se(e,s,"whitespace")),r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):r(u)}function s(u){return u===null||ce(u)?(e.exit("definition"),n.parser.defined.includes(i)||n.parser.defined.push(i),t(u)):r(u)}}function CT(e,t,r){return n;function n(o){return Qe(o)?Jr(e,i)(o):r(o)}function i(o){return o===34||o===39||o===40?gl(e,Se(e,a,"whitespace"),r,"definitionTitle","definitionTitleMarker","definitionTitleString")(o):r(o)}function a(o){return o===null||ce(o)?t(o):r(o)}}m();var uf={name:"hardBreakEscape",tokenize:DT};function DT(e,t,r){return n;function n(a){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(a),i}function i(a){return ce(a)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(a)):r(a)}}m();var df={name:"headingAtx",tokenize:MT,resolve:TT};function TT(e,t){let r=e.length-2,n=3,i,a;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(i={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},a={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},Nt(e,n,r-n+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function MT(e,t,r){let n=this,i=0;return a;function a(c){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&i++<6?(e.consume(c),o):c===null||Qe(c)?(e.exit("atxHeadingSequence"),n.interrupt?t(c):s(c)):r(c)}function s(c){return c===35?(e.enter("atxHeadingSequence"),u(c)):c===null||ce(c)?(e.exit("atxHeading"),t(c)):Ke(c)?Se(e,s,"whitespace")(c):(e.enter("atxHeadingText"),l(c))}function u(c){return c===35?(e.consume(c),u):(e.exit("atxHeadingSequence"),s(c))}function l(c){return c===null||c===35||Qe(c)?(e.exit("atxHeadingText"),s(c)):(e.consume(c),l)}}m();m();var oE=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ff=["pre","script","style","textarea"];var pf={name:"htmlFlow",tokenize:LT,resolveTo:AT,concrete:!0},IT={tokenize:PT,partial:!0};function AT(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function LT(e,t,r){let n=this,i,a,o,s,u;return l;function l(N){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),d):N===47?(e.consume(N),g):N===63?(e.consume(N),i=3,n.interrupt?t:be):dn(N)?(e.consume(N),o=String.fromCharCode(N),a=!0,y):r(N)}function d(N){return N===45?(e.consume(N),i=2,f):N===91?(e.consume(N),i=5,o="CDATA[",s=0,p):dn(N)?(e.consume(N),i=4,n.interrupt?t:be):r(N)}function f(N){return N===45?(e.consume(N),n.interrupt?t:be):r(N)}function p(N){return N===o.charCodeAt(s++)?(e.consume(N),s===o.length?n.interrupt?t:J:p):r(N)}function g(N){return dn(N)?(e.consume(N),o=String.fromCharCode(N),y):r(N)}function y(N){return N===null||N===47||N===62||Qe(N)?N!==47&&a&&ff.includes(o.toLowerCase())?(i=1,n.interrupt?t(N):J(N)):oE.includes(o.toLowerCase())?(i=6,N===47?(e.consume(N),b):n.interrupt?t(N):J(N)):(i=7,n.interrupt&&!n.parser.lazy[n.now().line]?r(N):a?T(N):x(N)):N===45||Gt(N)?(e.consume(N),o+=String.fromCharCode(N),y):r(N)}function b(N){return N===62?(e.consume(N),n.interrupt?t:J):r(N)}function x(N){return Ke(N)?(e.consume(N),x):U(N)}function T(N){return N===47?(e.consume(N),U):N===58||N===95||dn(N)?(e.consume(N),C):Ke(N)?(e.consume(N),T):U(N)}function C(N){return N===45||N===46||N===58||N===95||Gt(N)?(e.consume(N),C):A(N)}function A(N){return N===61?(e.consume(N),H):Ke(N)?(e.consume(N),A):T(N)}function H(N){return N===null||N===60||N===61||N===62||N===96?r(N):N===34||N===39?(e.consume(N),u=N,D):Ke(N)?(e.consume(N),H):(u=null,K(N))}function D(N){return N===null||ce(N)?r(N):N===u?(e.consume(N),z):(e.consume(N),D)}function K(N){return N===null||N===34||N===39||N===60||N===61||N===62||N===96||Qe(N)?A(N):(e.consume(N),K)}function z(N){return N===47||N===62||Ke(N)?T(N):r(N)}function U(N){return N===62?(e.consume(N),Z):r(N)}function Z(N){return Ke(N)?(e.consume(N),Z):N===null||ce(N)?J(N):r(N)}function J(N){return N===45&&i===2?(e.consume(N),ie):N===60&&i===1?(e.consume(N),he):N===62&&i===4?(e.consume(N),Te):N===63&&i===3?(e.consume(N),be):N===93&&i===5?(e.consume(N),ge):ce(N)&&(i===6||i===7)?e.check(IT,Te,se)(N):N===null||ce(N)?se(N):(e.consume(N),J)}function se(N){return e.exit("htmlFlowData"),G(N)}function G(N){return N===null?F(N):ce(N)?e.attempt({tokenize:Q,partial:!0},G,F)(N):(e.enter("htmlFlowData"),J(N))}function Q(N,ut,Ge){return W;function W(q){return N.enter("lineEnding"),N.consume(q),N.exit("lineEnding"),j}function j(q){return n.parser.lazy[n.now().line]?Ge(q):ut(q)}}function ie(N){return N===45?(e.consume(N),be):J(N)}function he(N){return N===47?(e.consume(N),o="",pe):J(N)}function pe(N){return N===62&&ff.includes(o.toLowerCase())?(e.consume(N),Te):dn(N)&&o.length<8?(e.consume(N),o+=String.fromCharCode(N),pe):J(N)}function ge(N){return N===93?(e.consume(N),be):J(N)}function be(N){return N===62?(e.consume(N),Te):N===45&&i===2?(e.consume(N),be):J(N)}function Te(N){return N===null||ce(N)?(e.exit("htmlFlowData"),F(N)):(e.consume(N),Te)}function F(N){return e.exit("htmlFlow"),t(N)}}function PT(e,t,r){return n;function n(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(Dr,t,r)}}m();var hf={name:"htmlText",tokenize:FT};function FT(e,t,r){let n=this,i,a,o,s;return u;function u(F){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(F),l}function l(F){return F===33?(e.consume(F),c):F===47?(e.consume(F),K):F===63?(e.consume(F),H):dn(F)?(e.consume(F),Z):r(F)}function c(F){return F===45?(e.consume(F),d):F===91?(e.consume(F),a="CDATA[",o=0,b):dn(F)?(e.consume(F),A):r(F)}function d(F){return F===45?(e.consume(F),f):r(F)}function f(F){return F===null||F===62?r(F):F===45?(e.consume(F),p):g(F)}function p(F){return F===null||F===62?r(F):g(F)}function g(F){return F===null?r(F):F===45?(e.consume(F),y):ce(F)?(s=g,ge(F)):(e.consume(F),g)}function y(F){return F===45?(e.consume(F),Te):g(F)}function b(F){return F===a.charCodeAt(o++)?(e.consume(F),o===a.length?x:b):r(F)}function x(F){return F===null?r(F):F===93?(e.consume(F),T):ce(F)?(s=x,ge(F)):(e.consume(F),x)}function T(F){return F===93?(e.consume(F),C):x(F)}function C(F){return F===62?Te(F):F===93?(e.consume(F),C):x(F)}function A(F){return F===null||F===62?Te(F):ce(F)?(s=A,ge(F)):(e.consume(F),A)}function H(F){return F===null?r(F):F===63?(e.consume(F),D):ce(F)?(s=H,ge(F)):(e.consume(F),H)}function D(F){return F===62?Te(F):H(F)}function K(F){return dn(F)?(e.consume(F),z):r(F)}function z(F){return F===45||Gt(F)?(e.consume(F),z):U(F)}function U(F){return ce(F)?(s=U,ge(F)):Ke(F)?(e.consume(F),U):Te(F)}function Z(F){return F===45||Gt(F)?(e.consume(F),Z):F===47||F===62||Qe(F)?J(F):r(F)}function J(F){return F===47?(e.consume(F),Te):F===58||F===95||dn(F)?(e.consume(F),se):ce(F)?(s=J,ge(F)):Ke(F)?(e.consume(F),J):Te(F)}function se(F){return F===45||F===46||F===58||F===95||Gt(F)?(e.consume(F),se):G(F)}function G(F){return F===61?(e.consume(F),Q):ce(F)?(s=G,ge(F)):Ke(F)?(e.consume(F),G):J(F)}function Q(F){return F===null||F===60||F===61||F===62||F===96?r(F):F===34||F===39?(e.consume(F),i=F,ie):ce(F)?(s=Q,ge(F)):Ke(F)?(e.consume(F),Q):(e.consume(F),i=void 0,pe)}function ie(F){return F===i?(e.consume(F),he):F===null?r(F):ce(F)?(s=ie,ge(F)):(e.consume(F),ie)}function he(F){return F===62||F===47||Qe(F)?J(F):r(F)}function pe(F){return F===null||F===34||F===39||F===60||F===61||F===96?r(F):F===62||Qe(F)?J(F):(e.consume(F),pe)}function ge(F){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(F),e.exit("lineEnding"),Se(e,be,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function be(F){return e.enter("htmlTextData"),s(F)}function Te(F){return F===62?(e.consume(F),e.exit("htmlTextData"),e.exit("htmlText"),t):r(F)}}m();var Gr={name:"labelEnd",tokenize:KT,resolveTo:BT,resolveAll:HT},NT={tokenize:$T},OT={tokenize:UT},RT={tokenize:VT};function HT(e){let t=-1,r;for(;++t-1&&(o[0]=o[0].slice(n)),a>0&&o.push(e[i].slice(0,a))),o}function o1(e,t){let r=-1,n=[],i;for(;++rh1,contentInitial:()=>l1,disable:()=>m1,document:()=>s1,flow:()=>u1,flowInitial:()=>c1,insideSpan:()=>p1,string:()=>d1,text:()=>f1});m();var s1={[42]:Vt,[43]:Vt,[45]:Vt,[48]:Vt,[49]:Vt,[50]:Vt,[51]:Vt,[52]:Vt,[53]:Vt,[54]:Vt,[55]:Vt,[56]:Vt,[57]:Vt,[62]:cl},l1={[91]:cf},c1={[-2]:Qa,[-1]:Qa,[32]:Qa},u1={[35]:df,[42]:Qr,[45]:[vl,Qr],[60]:pf,[61]:vl,[95]:Qr,[96]:fl,[126]:fl},d1={[38]:dl,[92]:ul},f1={[-5]:Xa,[-4]:Xa,[-3]:Xa,[33]:mf,[38]:dl,[42]:Ga,[60]:[af,hf],[91]:gf,[92]:[uf,ul],[93]:Gr,[95]:Ga,[96]:sf},p1={null:[Ga,lE]},h1={null:[42,95]},m1={null:[]};function hE(e={}){let t=Gw([vf].concat(e.extensions||[])),r={defined:[],lazy:{},constructs:t,content:n(nE),document:n(rE),flow:n(sE),string:n(cE),text:n(uE)};return r;function n(i){return a;function a(o){return pE(r,i,o)}}}m();var mE=/[\0\t\n\r]/g;function gE(){let e=1,t="",r=!0,n;return i;function i(a,o,s){let u=[],l,c,d,f,p;for(a=t+a.toString(o),d=0,t="",r&&(a.charCodeAt(0)===65279&&d++,r=void 0);d13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)==65535||(r&65535)==65534||r>1114111?"\uFFFD":String.fromCharCode(r)}m();var g1=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function yE(e){return e.replace(g1,v1)}function v1(e,t,r){if(t)return t;if(r.charCodeAt(0)===35){let i=r.charCodeAt(1),a=i===120||i===88;return yl(r.slice(a?2:1),a?16:10)}return Hi(r)||e}m();function Za(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?bE(e.position):"start"in e||"end"in e?bE(e):"line"in e||"column"in e?yf(e):""}function yf(e){return wE(e&&e.line)+":"+wE(e&&e.column)}function bE(e){return yf(e&&e.start)+"-"+yf(e&&e.end)}function wE(e){return e&&typeof e=="number"?e:1}var bf={}.hasOwnProperty,bl=function(e,t,r){return typeof t!="string"&&(r=t,t=void 0),y1(r)(vE(hE(r).document().write(gE()(e,t,!0))))};function y1(e={}){let t=EE({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:u(Zr),autolinkProtocol:se,autolinkEmail:se,atxHeading:u($n),blockQuote:u(dt),characterEscape:se,characterReference:se,codeFenced:u(vt),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:u(vt,l),codeText:u(Ot,l),codeTextData:se,data:se,codeFlowValue:se,definition:u(Bn),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:u(Kn),hardBreakEscape:u(bn),hardBreakTrailing:u(bn),htmlFlow:u(wn,l),htmlFlowData:se,htmlText:u(wn,l),htmlTextData:se,image:u(Un),label:l,link:u(Zr),listItem:u(ti),listItemValue:y,listOrdered:u(ei,g),listUnordered:u(ei),paragraph:u(rr),reference:j,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:u($n),strong:u(Rt),thematicBreak:u(yt)},exit:{atxHeading:d(),atxHeadingSequence:z,autolink:d(),autolinkEmail:Ue,autolinkProtocol:xe,blockQuote:d(),characterEscapeValue:G,characterReferenceMarkerHexadecimal:te,characterReferenceMarkerNumeric:te,characterReferenceValue:we,codeFenced:d(C),codeFencedFence:T,codeFencedFenceInfo:b,codeFencedFenceMeta:x,codeFlowValue:G,codeIndented:d(A),codeText:d(ge),codeTextData:G,data:G,definition:d(),definitionDestinationString:K,definitionLabelString:H,definitionTitleString:D,emphasis:d(),hardBreakEscape:d(ie),hardBreakTrailing:d(ie),htmlFlow:d(he),htmlFlowData:G,htmlText:d(pe),htmlTextData:G,image:d(Te),label:N,labelText:F,lineEnding:Q,link:d(be),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:q,resourceDestinationString:ut,resourceTitleString:Ge,resource:W,setextHeading:d(J),setextHeadingLineSequence:Z,setextHeadingText:U,strong:d(),thematicBreak:d()}},e.mdastExtensions||[]),r={};return n;function n(Y){let oe={type:"root",children:[]},Ee=[oe],ze=[],Tt=[],En={stack:Ee,tokenStack:ze,config:t,enter:c,exit:f,buffer:l,resume:p,setData:a,getData:o},qe=-1;for(;++qe0){let st=ze[ze.length-1];(st[1]||kE).call(En,void 0,st[0])}for(oe.position={start:s(Y.length>0?Y[0][1].start:{line:1,column:1,offset:0}),end:s(Y.length>0?Y[Y.length-2][1].end:{line:1,column:1,offset:0})},qe=-1;++qe".charCodeAt(0)?o(g):(i.enter(e),i.enter(`${e}Marker`),d(g))}function d(g){return u===t.length?(i.exit(`${e}Marker`),f(g)):g!==t.charCodeAt(u)?o(g):(i.consume(g),u++,d)}function f(g){return i.enter(`${e}Data`),i.enter(`${e}Target`),p(g)}function p(g){return Qe(g)||"<".charCodeAt(0)===g||"#".charCodeAt(0)===g||g===null?s?(i.exit(`${e}Target`),i.exit(`${e}Data`),i.exit(e),a(g)):o(g):(s=!0,i.consume(g),p)}}let n={tokenize:r};return{text:{[t.charCodeAt(0)]:n}}}function PE(){let e="hashtag";function t(i){this.enter({type:e,value:null},i)}function r(i){let a=this.sliceSerialize(i),o=Bi(this.stack);o.value=a}function n(i){this.exit(i)}return{enter:{[e]:t},exit:{[`${e}Target`]:r,[e]:n}}}m();m();var Ui={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,byteOrderMarker:65279,replacementCharacter:65533};m();var xf={data:"data",whitespace:"whitespace",lineEnding:"lineEnding",lineEndingBlank:"lineEndingBlank",linePrefix:"linePrefix",lineSuffix:"lineSuffix",atxHeading:"atxHeading",atxHeadingSequence:"atxHeadingSequence",atxHeadingText:"atxHeadingText",autolink:"autolink",autolinkEmail:"autolinkEmail",autolinkMarker:"autolinkMarker",autolinkProtocol:"autolinkProtocol",characterEscape:"characterEscape",characterEscapeValue:"characterEscapeValue",characterReference:"characterReference",characterReferenceMarker:"characterReferenceMarker",characterReferenceMarkerNumeric:"characterReferenceMarkerNumeric",characterReferenceMarkerHexadecimal:"characterReferenceMarkerHexadecimal",characterReferenceValue:"characterReferenceValue",codeFenced:"codeFenced",codeFencedFence:"codeFencedFence",codeFencedFenceSequence:"codeFencedFenceSequence",codeFencedFenceInfo:"codeFencedFenceInfo",codeFencedFenceMeta:"codeFencedFenceMeta",codeFlowValue:"codeFlowValue",codeIndented:"codeIndented",codeText:"codeText",codeTextData:"codeTextData",codeTextPadding:"codeTextPadding",codeTextSequence:"codeTextSequence",content:"content",definition:"definition",definitionDestination:"definitionDestination",definitionDestinationLiteral:"definitionDestinationLiteral",definitionDestinationLiteralMarker:"definitionDestinationLiteralMarker",definitionDestinationRaw:"definitionDestinationRaw",definitionDestinationString:"definitionDestinationString",definitionLabel:"definitionLabel",definitionLabelMarker:"definitionLabelMarker",definitionLabelString:"definitionLabelString",definitionMarker:"definitionMarker",definitionTitle:"definitionTitle",definitionTitleMarker:"definitionTitleMarker",definitionTitleString:"definitionTitleString",emphasis:"emphasis",emphasisSequence:"emphasisSequence",emphasisText:"emphasisText",escapeMarker:"escapeMarker",hardBreakEscape:"hardBreakEscape",hardBreakTrailing:"hardBreakTrailing",htmlFlow:"htmlFlow",htmlFlowData:"htmlFlowData",htmlText:"htmlText",htmlTextData:"htmlTextData",image:"image",label:"label",labelText:"labelText",labelLink:"labelLink",labelImage:"labelImage",labelMarker:"labelMarker",labelImageMarker:"labelImageMarker",labelEnd:"labelEnd",link:"link",paragraph:"paragraph",reference:"reference",referenceMarker:"referenceMarker",referenceString:"referenceString",resource:"resource",resourceDestination:"resourceDestination",resourceDestinationLiteral:"resourceDestinationLiteral",resourceDestinationLiteralMarker:"resourceDestinationLiteralMarker",resourceDestinationRaw:"resourceDestinationRaw",resourceDestinationString:"resourceDestinationString",resourceMarker:"resourceMarker",resourceTitle:"resourceTitle",resourceTitleMarker:"resourceTitleMarker",resourceTitleString:"resourceTitleString",setextHeading:"setextHeading",setextHeadingText:"setextHeadingText",setextHeadingLine:"setextHeadingLine",setextHeadingLineSequence:"setextHeadingLineSequence",strong:"strong",strongSequence:"strongSequence",strongText:"strongText",thematicBreak:"thematicBreak",thematicBreakSequence:"thematicBreakSequence",blockQuote:"blockQuote",blockQuotePrefix:"blockQuotePrefix",blockQuoteMarker:"blockQuoteMarker",blockQuotePrefixWhitespace:"blockQuotePrefixWhitespace",listOrdered:"listOrdered",listUnordered:"listUnordered",listItemIndent:"listItemIndent",listItemMarker:"listItemMarker",listItemPrefix:"listItemPrefix",listItemPrefixWhitespace:"listItemPrefixWhitespace",listItemValue:"listItemValue",chunkDocument:"chunkDocument",chunkContent:"chunkContent",chunkFlow:"chunkFlow",chunkText:"chunkText",chunkString:"chunkString"};var S1={tokenize:_1},FE={text:{[Ui.leftSquareBracket]:S1}};function _1(e,t,r){let n=this;return i;function i(s){return n.previous!==Ui.eof||!n._gfmTasklistFirstContentOfListItem?r(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),a)}function a(s){return Ke(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),o):s!==Ui.rightSquareBracket?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),o):r(s)}function o(s){return s===Ui.rightSquareBracket?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:C1},t,r)):r(s)}}function C1(e,t,r){let n=this;return Se(e,i,xf.whitespace);function i(a){let o=n.events[n.events.length-1];return o&&o[1].type===xf.whitespace&&a!==Ui.eof&&!Qe(a)?t(a):r(a)}}var NE={exit:{taskListCheckValueChecked:OE,taskListCheckValueUnchecked:OE,paragraph:D1}};function OE(e){let t=this.stack[this.stack.length-2];t.checked=e.type==="taskListCheckValueChecked",t.checkChar=this.sliceSerialize(e)}function D1(e){let t=this.stack[this.stack.length-2],r=this.stack[this.stack.length-1],n=t.children,i=r.children[0],a=-1,o;if(t&&t.type==="listItem"&&typeof t.checked=="boolean"&&i&&i.type==="text"){for(;++a=0;i--){if(!t&&/[`%\n\r]/.test(e[i])){e[i]==="`"&&(r++,r===3&&(t=!0,n=i-1));continue}else if(!t)return{};if(e[i]==="`"&&e[i-1]==="`"&&e[i-2]==="`"&&/[\r\n]/.test(e[i-3]))return JSON.parse(e.slice(i+1,n).trim())}}function HE(e){return[FE,Ki("date",`${e.getSetting("date-trigger")}{`,"}"),Ki("dateLink",`${e.getSetting("date-trigger")}[[`,"]]"),Ki("time",`${e.getSetting("time-trigger")}{`,"}"),Ki("embedWikilink","![[","]]"),Ki("wikilink","[[","]]"),LE(),ME()]}function BE(e){return[NE,$i("date",(t,r)=>{!t||(r.date=t)}),$i("dateLink",(t,r)=>{!t||(r.date=t)}),$i("time",(t,r)=>{!t||(r.time=t)}),$i("embedWikilink",(t,r)=>{if(!t)return;let n=zr(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);r.fileAccessor={target:n.root,isEmbed:!0,stats:i==null?void 0:i.stat}}),$i("wikilink",(t,r)=>{if(!t)return;let n=zr(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);if(r.fileAccessor={target:n.root,isEmbed:!1},i){let a=Md(e,i);r.fileMetadata=a.fileMetadata,r.fileMetadataOrder=a.fileMetadataOrder}}),AE((t,r)=>{if(!t.url||/:\/\//.test(t.url)||!/.md$/.test(t.url))return;let n=e.app.metadataCache.getFirstLinkpathDest(decodeURIComponent(t.url),e.file.path);if(r)t.type="embedLink",t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!0,stats:n.stat};else if(t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!1},n){let i=Md(e,n);t.fileMetadata=i.fileMetadata,t.fileMetadataOrder=i.fileMetadataOrder}}),PE(),IE()]}function KE(e,t){let r=T1(t),i={...M1(t)},a={};return Object.keys(r).forEach(o=>{o===gn?(i[o]=r[o],a[o]=r[o]):Aw[o]?i[o]=r[o]:a[o]=r[o]}),e.compileSettings(i),{settings:i,frontmatter:a,ast:bl(t,{extensions:[Ef(["yaml"]),...HE(e)],mdastExtensions:[CE(["yaml"]),...BE(e)]})}}function Sf(e,t){return bl(t,{extensions:HE(e),mdastExtensions:BE(e)})}function xl(e,t,r){let n=e.getSetting("hide-tags-in-title"),i=e.getSetting("hide-date-in-title"),a=Zd(r.children[0]),o=ef(t,a);(o==="[ ]"||o==="[x]")&&(o="");let s=o,u={titleRaw:Rs(o),blockId:void 0,title:"",titleSearch:"",metadata:{dateStr:void 0,date:void 0,time:void 0,timeStr:void 0,tags:[],fileAccessor:void 0,file:void 0,fileMetadata:void 0,fileMetadataOrder:void 0},dom:void 0,isComplete:!!r.checked};return Vw(r,l=>l.type!=="paragraph",l=>{let c=l;if(c.type==="blockid")return u.blockId=c.value,!0;if(c.type==="hashtag")return u.metadata.tags||(u.metadata.tags=[]),u.metadata.tags.push("#"+c.value),n&&(s=Os(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="date"||c.type==="dateLink")return u.metadata.dateStr=c.date,i&&(s=Os(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="time")return u.metadata.timeStr=c.time,s=Os(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start}),!0;if(c.type==="embedWikilink")return u.metadata.fileAccessor=c.fileAccessor,!0;if(c.type==="wikilink"||c.type==="link"&&c.fileAccessor)return u.metadata.fileAccessor=c.fileAccessor,u.metadata.fileMetadata=c.fileMetadata,u.metadata.fileMetadataOrder=c.fileMetadataOrder,!0;if(c.type==="embedLink")return u.metadata.fileAccessor=c.fileAccessor,!0}),u.title=Rs(Sb(s)),u}function I1(e,t,r){if(e.type!=="heading"||ja(e,{includeImageAlt:!1})!==L("Archive"))return!1;let n=Ww(t,r);return n&&n.type==="thematicBreak"}function UE(e,t,r,n,i){let a=[],o=[];return n.children.forEach((s,u)=>{if(s.type==="heading"){let l=I1(s,n.children,u),c=Zd(s),d=ef(i,c),f=!1,p=zw(n.children,u,"list",g=>{if(g.type==="heading")return!1;if(g.type==="paragraph"){let y=ja(g);if(y.startsWith("%% kanban:settings"))return!1;if(y===L("Complete"))return f=!0,!0}return!0});if(l&&p){o.push(...p.children.map(g=>({...ps,id:Ae(),data:xl(e,i,g)})));return}p?a.push({...kr,children:p.children.map(g=>({...ps,id:Ae(),data:xl(e,i,g)})),id:Ae(),data:{...jr(d),shouldMarkItemsComplete:f}}):a.push({...kr,children:[],id:Ae(),data:{...jr(d),shouldMarkItemsComplete:f}})}}),{...hs,id:e.file.path,children:a,data:{settings:t,frontmatter:r,archive:o,isSearching:!1,errors:[]}}}async function _f(e,t,r){let n=`- [${t.data.isComplete?"x":" "}] ${Ra(r)}${t.data.blockId?` ^${t.data.blockId}`:""}`,i=Sf(e,n),a=xl(e,n,i.children[0].children[0]),o=(0,kl.default)(t,{data:{$set:a}});try{await qa(e,o)}catch(s){console.error(s)}return o}async function VE(e,t,r,n){let i=`- [${r?"x":" "}] ${Ra(t)}`,a=Sf(e,i),o=xl(e,i,a.children[0].children[0]);o.forceEditMode=!!n;let s={...ps,id:Ae(),data:o};try{await qa(e,s)}catch(u){console.error(u)}return s}async function WE(e,t){try{return(0,kl.default)(t,{children:{$set:await Promise.all(t.children.map(async r=>{try{return(0,kl.default)(r,{children:{$set:await Promise.all(r.children.map(n=>_f(e,n,n.data.titleRaw)))}})}catch(n){throw e.setError(n),n}}))}})}catch(r){throw e.setError(r),r}}function zE(e){return`- [${e.data.isComplete?"x":" "}] ${Ra(e.data.titleRaw)}${e.data.blockId?` ^${e.data.blockId}`:""}`}function A1(e){let t=[];return t.push(`## ${Ra(Jo(e.data.title,e.data.maxItems))}`),t.push(""),e.data.shouldMarkItemsComplete&&t.push(zb),e.children.forEach(r=>{t.push(zE(r))}),t.push(""),t.push(""),t.push(""),t.join(` +`)}function L1(e){if(e.length){let t=[jb,"",`## ${L("Archive")}`,""];return e.forEach(r=>{t.push(zE(r))}),t.join(` +`)}return""}function jE(e){let t=e.children.reduce((n,i)=>n+A1(i),"");return["---","",(0,$E.stringifyYaml)(e.data.frontmatter),"---","",""].join(` +`)+t+L1(e.data.archive)+qb(e.data.settings)}var Cf=class{constructor(t){this.stateManager=t}newItem(t,r,n){return VE(this.stateManager,t,r,n)}updateItemContent(t,r){return _f(this.stateManager,t,r)}boardToMd(t){return jE(t)}mdToBoard(t){let{ast:r,settings:n,frontmatter:i}=KE(this.stateManager,t),a=UE(this.stateManager,n,i,r,t);if(!this.stateManager.hasError()&&this.stateManager.state){let s=Jd(this.stateManager.state,a).filter(l=>["/id","/dom","/date","/time","/titleSearch","/file"].every(c=>!l.path.endsWith(c))),u=(0,qE.immutableJSONPatch)(this.stateManager.state,s);return Yw(this.stateManager,u,s)}return qw(this.stateManager,a)}reparseBoard(){return WE(this.stateManager,this.stateManager.state)}};var Df=class{constructor(t,r,n,i,a){this.stateReceivers=[];this.settingsNotifiers=new Map;this.viewSet=new Set;this.compiledSettings={};this.newBoardPromise=null;this.getSetting=(t,r)=>r&&r[t]!==void 0?r[t]:this.compiledSettings&&this.compiledSettings[t]!==void 0?this.compiledSettings[t]:this.getSettingRaw(t);this.getSettingRaw=(t,r)=>{var n,i;return r&&r[t]!==void 0?r[t]:((i=(n=this.state)==null?void 0:n.data)==null?void 0:i.settings)&&this.state.data.settings[t]!==void 0?this.state.data.settings[t]:this.getGlobalSetting(t)};this.getGlobalSetting=t=>{let r=this.getGlobalSettings();return r&&r[t]!==void 0?r[t]:null};this.app=t,this.file=r.file,this.onEmpty=i,this.getGlobalSettings=a,this.parser=new Cf(this),this.registerView(r,n,!0)}getAView(){return this.viewSet.values().next().value}hasError(){var t,r,n;return!!((n=(r=(t=this.state)==null?void 0:t.data)==null?void 0:r.errors)==null?void 0:n.length)}registerView(t,r,n){this.viewSet.has(t)||(this.viewSet.add(t),t.initHeaderButtons()),n&&(this.newBoardPromise!==null?this.newBoardPromise.then(()=>this.newBoard(r)):this.newBoardPromise=this.newBoard(r).then(()=>{this.newBoardPromise=null}).catch(i=>{console.error(i),this.setError(i)}))}unregisterView(t){this.viewSet.has(t)&&(this.viewSet.delete(t),this.viewSet.size===0&&this.onEmpty())}buildSettingRetrievers(){return{getGlobalSettings:this.getGlobalSettings,getGlobalSetting:this.getGlobalSetting,getSetting:this.getSetting}}async newBoard(t){try{await this.setState(await this.getParsedBoard(t),!1)}catch(r){this.setError(r)}}saveToDisk(){if(this.state.data.errors.length>0)return;let t=this.getAView();if(t){let r=this.parser.boardToMd(this.state);t.requestSaveToDisk(r),this.viewSet.forEach(n=>{n.data=r})}}softRefresh(){this.stateReceivers.forEach(t=>t({...this.state}))}async forceRefresh(){if(this.state)try{this.compileSettings(),this.state=await this.parser.reparseBoard(),this.stateReceivers.forEach(t=>t(this.state)),this.settingsNotifiers.forEach(t=>{t.forEach(r=>r())}),this.viewSet.forEach(t=>t.initHeaderButtons())}catch(t){console.error(t),this.setError(t)}}async setState(t,r=!0){var n;try{let i=(n=this.state)==null?void 0:n.data.settings,a=typeof t=="function"?await t(this.state):t,o=a==null?void 0:a.data.settings;i&&o&&Gb(i,o)?(this.state=(0,Vi.default)(this.state,{data:{settings:{$set:o}}}),this.compileSettings(),this.state=await this.parser.reparseBoard()):(this.state=a,this.compileSettings()),this.viewSet.forEach(s=>s.initHeaderButtons()),r&&this.saveToDisk(),this.stateReceivers.forEach(s=>s(this.state)),i!==o&&o&&this.settingsNotifiers.forEach((s,u)=>{(!i&&o||i[u]!==o[u])&&s.forEach(l=>l())})}catch(i){console.error(i),this.setError(i)}}useState(){let[t,r]=P.useState(this.state);return P.useEffect(()=>(this.stateReceivers.push(n=>{r(n)}),r(this.state),()=>{this.stateReceivers.remove(r)}),[]),t}useSetting(t){let[r,n]=P.useState(this.getSetting(t));return P.useEffect(()=>{let i=()=>{n(this.getSetting(t))};return this.settingsNotifiers.has(t)?this.settingsNotifiers.get(t).push(i):this.settingsNotifiers.set(t,[i]),()=>{this.settingsNotifiers.get(t).remove(i)}},[]),r}compileSettings(t){var s,u,l,c,d,f,p;let r=this.getGlobalSetting("metadata-keys")||[],n=this.getSettingRaw("metadata-keys",t)||[],i=this.getSettingRaw("date-format",t)||Nr(this.app),a=this.getSettingRaw("time-format",t)||ui(this.app),o=this.getSettingRaw("prepend-archive-format",t)||`${i} ${a}`;this.compiledSettings={"date-format":i,"date-display-format":this.getSettingRaw("date-display-format",t)||i,"date-trigger":this.getSettingRaw("date-trigger",t)||js,"time-format":a,"time-trigger":this.getSettingRaw("time-trigger",t)||qs,"link-date-to-daily-note":this.getSettingRaw("link-date-to-daily-note",t),"hide-date-in-title":this.getSettingRaw("hide-date-in-title",t),"hide-tags-in-title":this.getSettingRaw("hide-tags-in-title",t),"metadata-keys":[...r,...n],"prepend-archive-separator":this.getSettingRaw("prepend-archive-separator")||"","prepend-archive-format":o,"show-add-list":(s=this.getSettingRaw("show-add-list",t))!=null?s:!0,"show-archive-all":(u=this.getSettingRaw("show-archive-all",t))!=null?u:!0,"show-view-as-markdown":(l=this.getSettingRaw("show-view-as-markdown",t))!=null?l:!0,"show-board-settings":(c=this.getSettingRaw("show-board-settings",t))!=null?c:!0,"show-search":(d=this.getSettingRaw("show-search",t))!=null?d:!0,"tag-colors":(f=this.getSettingRaw("tag-colors",t))!=null?f:[],"date-colors":(p=this.getSettingRaw("date-colors",t))!=null?p:[]}}async getParsedBoard(t){let r=t.trim(),n={...hs,id:this.file.path,children:[],data:{archive:[],settings:{"kanban-plugin":"basic"},frontmatter:{},isSearching:!1,errors:[]}};try{r&&(n=await this.parser.mdToBoard(r))}catch(i){console.error(i),n=(0,Vi.default)(n,{data:{errors:{$push:[{description:i.toString(),stack:i.stack}]}}})}return n}setError(t){this.setState((0,Vi.default)(this.state,{data:{errors:{$push:[{description:t.toString(),stack:t.stack}]}}}),!1)}onFileMetadataChange(){this.reparseBoardFromMd()}async reparseBoardFromMd(){try{this.setState(await this.getParsedBoard(this.getAView().data),!1)}catch(t){console.error(t),this.setError(t)}}async archiveCompletedCards(){let t=this.state,r=[],n=!!this.getSetting("prepend-archive-date"),i=this.getSetting("prepend-archive-separator"),a=this.getSetting("prepend-archive-format"),o=u=>{let l=[(0,YE.moment)().format(a)];i&&l.push(i),l.push(u.data.titleRaw);let c=l.join(" ");return this.parser.updateItemContent(u,c)},s=t.children.map(u=>(0,Vi.default)(u,{children:{$set:u.children.filter(l=>((u.data.shouldMarkItemsComplete||l.data.isComplete)&&r.push(l),!l.data.isComplete&&!u.data.shouldMarkItemsComplete))}}));this.app.workspace.trigger("kanban:board-cards-archived",this.file,r);try{this.setState((0,Vi.default)(t,{children:{$set:s},data:{archive:{$push:n?await Promise.all(r.map(u=>o(u))):r}}}))}catch(u){this.setError(u)}}getNewItem(t,r,n){return this.parser.newItem(t,r,n)}updateItemContent(t,r){return this.parser.updateItemContent(t,r)}};var Tf=class extends Dt.Plugin{constructor(){super(...arguments);this.settings={};this.kanbanFileModes={};this.stateManagers=new Map;this.windowRegistry=new Map;this._loaded=!1;this.isShiftPressed=!1;this.handleShift=t=>{this.isShiftPressed=t.shiftKey}}async loadSettings(){this.settings=Object.assign({},await this.loadData())}async saveSettings(){await this.saveData(this.settings)}unload(){Promise.all(app.workspace.getLeavesOfType(yn).map(t=>(this.kanbanFileModes[t.id]="markdown",this.setMarkdownView(t)))).then(()=>{super.unload()})}onunload(){this.windowRegistry.forEach((t,r)=>{t.viewStateReceivers.forEach(n=>n([])),this.unmount(r)}),this.unmount(window),this.stateManagers.clear(),this.windowRegistry.clear(),this.kanbanFileModes={},window.removeEventListener("keydown",this.handleShift),window.removeEventListener("keyup",this.handleShift),app.workspace.unregisterHoverLinkSource(gn)}async onload(){var t,r;await this.loadSettings(),this.registerEvent(app.workspace.on("window-open",(n,i)=>{this.mount(i)})),this.registerEvent(app.workspace.on("window-close",(n,i)=>{this.unmount(i)})),this.settingsTab=new Vd(this,{onSettingsChange:async n=>{this.settings=n,await this.saveSettings(),this.stateManagers.forEach(i=>{i.forceRefresh()})}}),this.addSettingTab(this.settingsTab),this.registerView(yn,n=>new tr(n,this)),this.registerMonkeyPatches(),this.registerCommands(),this.registerEvents(),this.mount(window),(r=(t=app.workspace.floatingSplit)==null?void 0:t.children)==null||r.forEach(n=>{this.mount(n.win)}),window.addEventListener("keydown",this.handleShift),window.addEventListener("keyup",this.handleShift)}getKanbanViews(t){let r=this.windowRegistry.get(t);return r?Array.from(r.viewMap.values()):[]}getKanbanView(t,r){let n=this.windowRegistry.get(r);if(n==null?void 0:n.viewMap.has(t))return n.viewMap.get(t);for(let i of this.windowRegistry.values())if(i.viewMap.has(t))return i.viewMap.get(t);return null}getStateManager(t){return this.stateManagers.get(t)}getStateManagerFromViewID(t,r){let n=this.getKanbanView(t,r);return n?this.stateManagers.get(n.file):null}useViewState(t){let[r,n]=P.useState(this.getKanbanViews(t));return P.useEffect(()=>{let i=this.windowRegistry.get(t);return i==null||i.viewStateReceivers.push(n),()=>{i==null||i.viewStateReceivers.remove(n)}},[t]),r}addView(t,r,n){let i=t.getWindow(),a=this.windowRegistry.get(i);if(!a)return;a.viewMap.has(t.id)||a.viewMap.set(t.id,t);let o=t.file;this.stateManagers.has(o)?this.stateManagers.get(o).registerView(t,r,n):this.stateManagers.set(o,new Df(this.app,t,r,()=>this.stateManagers.delete(o),()=>this.settings)),a.viewStateReceivers.forEach(s=>s(this.getKanbanViews(i)))}removeView(t){let r=Array.from(this.windowRegistry.entries()).find(([,o])=>o.viewMap.has(t.id),[]);if(!r)return;let[n,i]=r,a=t.file;i.viewMap.has(t.id)&&i.viewMap.delete(t.id),this.stateManagers.has(a)&&(this.stateManagers.get(a).unregisterView(t),i.viewStateReceivers.forEach(o=>o(this.getKanbanViews(n))))}handleViewFileRename(t,r){let n=t.getWindow();if(!this.windowRegistry.has(n))return;let i=this.windowRegistry.get(n),a=`${t.leaf.id}:::${r}`;i.viewMap.has(a)&&i.viewMap.delete(a),i.viewMap.has(t.id)||i.viewMap.set(t.id,t),t.isPrimary&&this.getStateManager(t.file).softRefresh()}mount(t){if(this.windowRegistry.has(t))return;let r=t.document.body.createDiv();this.windowRegistry.set(t,{viewMap:new Map,viewStateReceivers:[],appRoot:r}),P.render(Vb(t,this),r)}unmount(t){if(!this.windowRegistry.has(t))return;let r=this.windowRegistry.get(t);for(let n of r.viewMap.values())n.destroy();P.unmountComponentAtNode(r.appRoot),r.appRoot.remove(),r.viewMap.clear(),r.viewStateReceivers.length=0,r.appRoot=null,this.windowRegistry.delete(t)}async setMarkdownView(t,r=!0){await t.setViewState({type:"markdown",state:t.view.getState(),popstate:!0},{focus:r})}async setKanbanView(t){await t.setViewState({type:yn,state:t.view.getState(),popstate:!0})}async newKanban(t){var n;let r=t||app.fileManager.getNewFileParent(((n=app.workspace.getActiveFile())==null?void 0:n.path)||"");try{let i=await app.fileManager.createNewMarkdownFile(r,L("Untitled Kanban"));await app.vault.modify(i,Td),await app.workspace.getLeaf().setViewState({type:yn,state:{file:i.path}})}catch(i){console.error("Error creating kanban board:",i)}}registerEvents(){this.registerEvent(app.workspace.on("file-menu",(r,n,i,a)=>{if(n instanceof Dt.TFolder){r.addItem(o=>{o.setTitle(L("New kanban board")).setIcon(Ua).onClick(()=>this.newKanban(n))});return}if(!Dt.Platform.isMobile&&n instanceof Dt.TFile&&a&&i==="sidebar-context-menu"&&bc(n)){let o=this.getKanbanViews(Ze(a.view.containerEl)),s=!1;for(let u of o)if(u.file===n){u.onPaneMenu(r,"more-options",!1),s=!0;break}if(!s){r.addItem(u=>{u.setTitle(L("Open as kanban board")).setIcon(Ua).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=yn,this.setKanbanView(a)})});return}}(a==null?void 0:a.view)instanceof Dt.MarkdownView&&n instanceof Dt.TFile&&i==="pane-more-options"&&bc(n)&&r.addItem(o=>{o.setTitle(L("Open as kanban board")).setIcon(Ua).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=yn,this.setKanbanView(a)})})})),this.registerEvent(app.vault.on("rename",(r,n)=>{app.workspace.getLeavesOfType(yn).forEach(a=>{a.view.handleRename(r.path,n)})}));let t=(0,Dt.debounce)(r=>{this.stateManagers.forEach(n=>{n.file!==r&&n.onFileMetadataChange()})},2e3,!0);this.registerEvent(app.vault.on("modify",r=>{r instanceof Dt.TFile&&t(r)})),this.registerEvent(app.metadataCache.on("changed",r=>{t(r)})),this.registerEvent(app.metadataCache.on("dataview:metadata-change",(r,n)=>{t(n)})),this.registerEvent(app.metadataCache.on("dataview:api-ready",()=>{this.stateManagers.forEach(r=>{r.forceRefresh()})})),app.workspace.registerHoverLinkSource(gn,{display:"Kanban",defaultMod:!0})}registerCommands(){this.addCommand({id:"create-new-kanban-board",name:L("Create new board"),callback:()=>this.newKanban()}),this.addCommand({id:"archive-completed-cards",name:L("Archive completed cards in active board"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(tr);if(!r)return!1;if(t)return!0;this.stateManagers.get(r.file).archiveCompletedCards()}}),this.addCommand({id:"toggle-kanban-view",name:L("Toggle between Kanban and markdown mode"),checkCallback:t=>{let r=app.workspace.getActiveFile();if(!r)return!1;let n=app.metadataCache.getFileCache(r),i=!!(n==null?void 0:n.frontmatter)&&!!n.frontmatter[gn];if(t)return i;let a=app.workspace.getActiveViewOfType(tr);if(a)this.kanbanFileModes[a.leaf.id||r.path]="markdown",this.setMarkdownView(a.leaf);else if(i){let o=app.workspace.getActiveViewOfType(Dt.MarkdownView);o&&(this.kanbanFileModes[o.leaf.id||r.path]=yn,this.setKanbanView(o.leaf))}}}),this.addCommand({id:"convert-to-kanban",name:L("Convert empty note to Kanban"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(Dt.MarkdownView);if(!r)return!1;let n=r.file.stat.size===0;if(t)return n;n&&app.vault.modify(r.file,Td).then(()=>{this.setKanbanView(r.leaf)}).catch(i=>console.error(i))}}),this.addCommand({id:"add-kanban-lane",name:L("Add a list"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(tr);if(t)return r&&r instanceof tr;r&&r instanceof tr&&r.emitter.emit("showLaneForm",void 0)}})}registerMonkeyPatches(){let t=this;app.workspace.onLayoutReady(()=>{this.register(Il(app.commands,{executeCommand(r){return function(n){let i=app.workspace.getActiveViewOfType(tr);return i&&(n==null?void 0:n.id)&&i.emitter.emit("hotkey",n.id),r.call(this,n)}}}))}),this.register(Il(Dt.WorkspaceLeaf.prototype,{detach(r){return function(){var i;let n=(i=this.view)==null?void 0:i.getState();return(n==null?void 0:n.file)&&t.kanbanFileModes[this.id||n.file]&&delete t.kanbanFileModes[this.id||n.file],r.apply(this)}},setViewState(r){return function(n,...i){var a;if(t._loaded&&n.type==="markdown"&&((a=n.state)==null?void 0:a.file)&&t.kanbanFileModes[this.id||n.state.file]!=="markdown"){let o=t.app.metadataCache.getCache(n.state.file);if((o==null?void 0:o.frontmatter)&&o.frontmatter[gn]){let s={...n,type:yn};return t.kanbanFileModes[n.state.file]=yn,r.apply(this,[s,...i])}}return r.apply(this,[n,...i])}}}))}};0&&(module.exports={}); +/*! + * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017-2021 Joachim Wester + * MIT license + */ +/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017-2022 Joachim Wester + * MIT licensed + */ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ +/*! choices.js v9.0.1 | © 2019 Josh Johnson | https://github.com/jshjohnson/Choices#readme */ +/*!*************************************************** +* mark.js v8.11.1 +* https://markjs.io/ +* Copyright (c) 2014–2018, Julian Kühnel +* Released under the MIT license https://git.io/vwTVl +*****************************************************/ diff --git a/.obsidian/plugins/obsidian-kanban/manifest.json b/.obsidian/plugins/obsidian-kanban/manifest.json new file mode 100644 index 0000000..4157082 --- /dev/null +++ b/.obsidian/plugins/obsidian-kanban/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-kanban", + "name": "Kanban", + "version": "1.5.1", + "minAppVersion": "1.0.0", + "description": "Create markdown-backed Kanban boards in Obsidian.", + "author": "mgmeyers", + "authorUrl": "https://github.com/mgmeyers/obsidian-kanban", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-kanban/styles.css b/.obsidian/plugins/obsidian-kanban/styles.css new file mode 100644 index 0000000..304274d --- /dev/null +++ b/.obsidian/plugins/obsidian-kanban/styles.css @@ -0,0 +1 @@ +.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #dddddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=text] .choices__button:hover,.choices[data-type*=text] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #dddddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #dddddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.choices__list--dropdown.is-active{visibility:visible}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}.workspace-leaf-content[data-type=kanban] .view-content{padding:0}.workspace-leaf-content[data-type=kanban]>.view-header{display:flex}.kanban-plugin{--lane-width: 272px}.kanban-plugin{contain:content;height:100%;width:100%;position:relative;display:flex;flex-direction:column}.kanban-plugin.something-is-dragging{cursor:grabbing;cursor:-webkit-grabbing}.kanban-plugin.something-is-dragging *{pointer-events:none}.kanban-plugin__item button,.kanban-plugin__lane button,.kanban-plugin button{line-height:1;padding:10px 12px;margin:0;transition:.1s color,.1s background-color}.kanban-plugin__search-wrapper{width:100%;position:sticky;top:0;left:0;padding:10px 13px;display:flex;justify-content:flex-end;align-items:center;z-index:2;background-color:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}button.kanban-plugin__search-cancel-button{display:flex;line-height:1;padding:6px;border:1px solid var(--background-modifier-border);background:var(--background-secondary-alt);color:var(--text-muted);margin:0 0 0 5px;font-size:16px}button.kanban-plugin__search-cancel-button .kanban-plugin__icon{display:flex}.kanban-plugin__icon{display:inline-block;line-height:1}.kanban-plugin__icon>svg{width:1em;height:1em}.kanban-plugin__board{display:flex;width:100%;height:100%}.kanban-plugin__board>div{display:flex;align-items:flex-start;justify-content:flex-start;padding:1rem;width:fit-content;height:100%}.kanban-plugin__board.is-adding-lane>div{padding-right:calc(250px + 1rem)}.kanban-plugin__lane-wrapper{display:flex;flex-shrink:0;margin-right:10px;max-height:100%;width:var(--lane-width)}.kanban-plugin__lane{width:100%;display:flex;flex-direction:column;background-color:var(--background-secondary);border-radius:6px;border:1px solid var(--background-modifier-border)}.kanban-plugin__placeholder.kanban-plugin__lane-placeholder{height:100%;flex-grow:1;margin-right:5px}.kanban-plugin__lane.is-hidden{display:none}.kanban-plugin__lane button{padding:8px 10px}.kanban-plugin__lane-form-wrapper{position:absolute;top:1rem;right:1rem;width:250px;background-color:var(--background-secondary);border-radius:6px;border:2px solid hsla(var(--interactive-accent-hsl),.7);z-index:var(--layer-popover);box-shadow:0 .5px 1px .5px #0000001a,0 2px 10px #0000001a,0 10px 20px #0000001a}.kanban-plugin__lane-input-wrapper{padding:10px}.kanban-plugin__item-input-actions,.kanban-plugin__lane-input-actions{display:flex;align-items:flex-start;justify-content:flex-start;padding:0 10px 10px}.kanban-plugin__item-input-actions button,.kanban-plugin__lane-input-actions button{display:block;margin-right:5px}.kanban-plugin__item-action-add,.kanban-plugin__lane-action-add{background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__item-action-add:hover,.kanban-plugin__lane-action-add:hover{background-color:var(--interactive-accent-hover)}.kanban-plugin__lane-header-wrapper{padding:8px 12px 8px 8px;display:flex;align-items:center;flex-shrink:0;flex-grow:0;border-bottom:1px solid var(--background-modifier-border)}.will-prepend .kanban-plugin__lane-header-wrapper{border-bottom:none}.kanban-plugin__lane-grip{cursor:grab;flex-grow:0;margin-right:5px;color:var(--text-faint)}.kanban-plugin__lane-grip:active{cursor:grabbing}.kanban-plugin__lane-grip>svg{display:block;height:1rem}.kanban-plugin__lane-title{font-weight:600;font-size:.875rem;flex-grow:1;width:100%;display:flex;flex-direction:column}.kanban-plugin__lane-title-text{flex-grow:1}div.kanban-plugin__markdown-preview-view>div>*{overflow-wrap:anywhere}div.kanban-plugin__lane-title-count{border-radius:3px;color:var(--text-muted);display:block;font-size:13px;line-height:1;padding:4px;margin-left:5px}div.kanban-plugin__lane-title-count.wip-exceeded{font-weight:bold;color:var(--text-normal);background-color:rgba(var(--background-modifier-error-rgb),.25)}.kanban-plugin__item button.kanban-plugin__item-prefix-button,.kanban-plugin__item button.kanban-plugin__item-postfix-button,.kanban-plugin__lane button.kanban-plugin__lane-settings-button{font-size:13px;line-height:1;color:var(--text-muted);padding:4px;display:flex;margin-left:5px;background-color:transparent;margin-right:-4px}.kanban-plugin__item button.kanban-plugin__item-prefix-button.is-enabled,.kanban-plugin__item button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{color:var(--text-accent)}.kanban-plugin__item button.kanban-plugin__item-prefix-button:hover,.kanban-plugin__item button.kanban-plugin__item-postfix-button:hover,.kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{background-color:transparent;color:var(--text-normal)}.kanban-plugin__item button.kanban-plugin__item-prefix-button{margin:4px 7px 4px 0;padding:0}.kanban-plugin__lane-action-wrapper,.kanban-plugin__item-edit-archive-button,.kanban-plugin__item-settings-actions .kanban-plugin__icon,.kanban-plugin__item-edit-archive-button>.kanban-plugin__icon,.kanban-plugin__item-prefix-button>.kanban-plugin__icon,.kanban-plugin__item-postfix-button>.kanban-plugin__icon,.kanban-plugin__lane-settings-button>.kanban-plugin__icon{display:flex}.kanban-plugin__lane-settings-button-wrapper{display:flex}button.kanban-plugin__lane-settings-button+button.kanban-plugin__lane-settings-button{margin-left:2px}.kanban-plugin__lane-settings-button svg{width:1em;height:1em}.kanban-plugin__lane-items-wrapper{margin:4px;height:100%}.kanban-plugin__lane-items{padding:4px;margin:0 4px;display:flex;flex-direction:column}.kanban-plugin__lane-items>div{margin-top:4px}.kanban-plugin__lane-items>.kanban-plugin__placeholder{flex-grow:1}.kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{height:2.55em;border:3px dashed rgba(var(--text-muted-rgb),.1);margin-bottom:4px;border-radius:6px;transition:border .2s ease}.is-sorting .kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{border-color:hsla(var(--interactive-accent-hsl),.6)}.kanban-plugin__item-button-wrapper{border-top:1px solid var(--background-modifier-border);padding:8px;flex-shrink:0;flex-grow:0}.kanban-plugin__item-button-wrapper>button{text-align:left;width:100%}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-button-wrapper{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-form{border-top:1px solid var(--background-modifier-border);padding:8px}.kanban-plugin__item-form .kanban-plugin__item-input-wrapper{padding:6px 8px;border:1px solid var(--background-modifier-border);background-color:var(--background-primary);border-radius:var(--input-radius);min-height:var(--input-height)}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-form{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-input-wrapper{display:flex;flex-direction:column;flex-grow:1}.kanban-plugin button.kanban-plugin__item-submit-button{background-color:var(--background-secondary-alt);flex-grow:0;flex-shrink:1;width:auto;margin-top:5px;line-height:1;font-size:14px}button.kanban-plugin__new-item-button{background-color:transparent;color:var(--text-muted)}.kanban-plugin__new-item-button:hover{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__drag-container>.kanban-plugin__item-wrapper .kanban-plugin__item{border-color:var(--interactive-accent);box-shadow:var(--shadow-s),0 0 0 2px hsla(var(--interactive-accent-hsl),.2)}.kanban-plugin__item{font-size:.875rem;border:1px solid var(--background-modifier-border);border-radius:var(--input-radius);overflow:hidden;transition:.3s opacity cubic-bezier(.25,1,.5,1)}.kanban-plugin__item.is-search-hit{box-shadow:0 15px 25px #0003,0 0 0 1px var(--background-modifier-border)}.kanban-plugin__item.is-search-miss{font-size:.75rem;opacity:.5}.kanban-plugin__item.is-search-miss .kanban-plugin__item-metadata-wrapper{display:none}.kanban-plugin__item-content-wrapper{background:var(--background-primary)}.kanban-plugin__item-title-wrapper{background:var(--background-primary);display:flex;padding:6px 8px;align-items:center}.kanban-plugin__item-title-wrapper:not(:only-child){border-bottom:1px solid var(--background-modifier-border)}.kanban-plugin__item-title{width:100%;line-height:var(--line-height-tight);overflow:hidden}.kanban-plugin__markdown-preview-view{font-family:var(--font-text, var(--default-font));font-size:.875rem;line-height:var(--line-height-tight);padding:unset;width:unset;height:unset;position:unset;overflow-y:unset;overflow-wrap:unset;color:unset;user-select:unset;-webkit-user-select:unset}.kanban-plugin__markdown-preview-view p,.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol,.kanban-plugin__markdown-preview-view blockquote{margin-block-start:.66em;margin-block-end:.66em}.kanban-plugin__markdown-preview-view blockquote{margin-inline-start:0;margin-inline-end:0}.kanban-plugin__markdown-preview-view ul ol,.kanban-plugin__markdown-preview-view ol ul,.kanban-plugin__markdown-preview-view ul ul,.kanban-plugin__markdown-preview-view ol ol{margin-block-start:0em;margin-block-end:0em}.kanban-plugin__markdown-preview-view>div>*{overflow-x:auto;overflow-wrap:break-word}.kanban-plugin__markdown-preview-view>div>*:first-child,.kanban-plugin__markdown-preview-view>div>.frontmatter-container+*{margin-top:0}.kanban-plugin__markdown-preview-view>div>*:last-child{margin-bottom:0}.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol{padding-inline-start:24px}.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view p,.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view{font-size:inherit;color:inherit;line-height:inherit}.kanban-plugin__markdown-preview-view.inline p,.kanban-plugin__markdown-preview-view.inline{display:inline-block}.kanban-plugin__markdown-preview-view .frontmatter,.kanban-plugin__markdown-preview-view .frontmatter-container{display:none}.kanban-plugin__markdown-preview-view .file-link span{display:inline-flex;align-items:center;justify-content:center;color:var(--text-faint);margin-left:2px;position:relative;top:3px}.kanban-plugin__embed-link-wrapper{padding:2px;float:right}.kanban-plugin__item-metadata-wrapper:not(:empty){background-color:var(--background-primary-alt);padding:6px 8px}.kanban-plugin__item-metadata:not(:empty){padding-top:5px;font-size:12px;font-weight:500;color:var(--text-muted)}.kanban-plugin__item-metadata>span{display:block}.kanban-plugin__item-metadata .is-button{cursor:var(--cursor)}.kanban-plugin__item-metadata .is-button:hover{color:var(--text-normal)}.kanban-plugin__item-metadata-date-relative:first-letter{text-transform:uppercase}.kanban-plugin__item-metadata a{text-decoration:none}.kanban-plugin__item-metadata-time:before{content:" \2022 "}.kanban-plugin__item-metadata-time.is-button:hover:before{color:var(--text-muted)}.kanban-plugin__item-tags:not(:empty){padding-top:2px}.kanban-plugin__item-tag{display:inline-block;margin-right:4px}.kanban-plugin__item-tags .kanban-plugin__item-tag{font-size:12px;background-color:var(--tag-background-color, hsla(var(--interactive-accent-hsl), .1));color:var(--tag-color, var(--text-accent));margin:3px 3px 0 0}.kanban-plugin__item-tag.is-search-match,.kanban-plugin__item-tags .kanban-plugin__item-tag.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-table{width:100%;margin:0;line-height:1.5;font-size:.75rem}.kanban-plugin__meta-table td{vertical-align:top;padding:3px 0;width:10%}.kanban-plugin__meta-table td+td{width:90%}.kanban-plugin__meta-table td:only-child{width:100%}.kanban-plugin__meta-table td.kanban-plugin__meta-key{white-space:nowrap;padding-right:5px;color:var(--text-muted)}.kanban-plugin__meta-table td.kanban-plugin__meta-key.is-search-match>span{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-value{white-space:pre-wrap;display:flex}.kanban-plugin__meta-value>.is-search-match,.kanban-plugin__meta-value.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__item-prefix-button-wrapper,.kanban-plugin__item-postfix-button-wrapper{display:flex;flex-grow:0;flex-shrink:0;align-self:start}.kanban-plugin__item-prefix-button-wrapper{flex-direction:column}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]{margin:4px 7px 4px 0;width:15px;height:15px;filter:hue-rotate(42deg)}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]+button{margin-top:10px}button.kanban-plugin__item-postfix-button{visibility:hidden;opacity:0;transition:.1s opacity;display:flex;align-self:flex-start}button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__item:hover button.kanban-plugin__item-postfix-button{visibility:visible;opacity:1}.kanban-plugin__item-settings-actions{padding:5px;display:flex}.kanban-plugin__item-settings-actions>button{line-height:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;width:100%}.kanban-plugin__lane-action-wrapper button>.kanban-plugin__icon,.kanban-plugin__item-settings-actions button>.kanban-plugin__icon{margin-right:5px}.kanban-plugin__item-settings-actions>button:first-child,.kanban-plugin__lane-action-wrapper>button:first-child{margin-right:2.5px}.kanban-plugin__item-settings-actions>button:last-child,.kanban-plugin__lane-action-wrapper>button:last-child{margin-left:2.5px}.kanban-plugin__archive-lane-button,.kanban-plugin__item-button-archive{color:var(--text-muted);border:1px solid var(--background-modifier-border)}.kanban-plugin__archive-lane-button:hover,.kanban-plugin__item-button-archive:hover{color:var(--text-normal)}.kanban-plugin__item-button-delete{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__checkbox-wrapper{border-top:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);padding:10px;margin-bottom:10px;display:flex;align-items:center}.kanban-plugin__checkbox-wrapper .checkbox-container{flex-shrink:0;flex-grow:0;margin-left:15px}.kanban-plugin__checkbox-label{font-size:.8125rem;line-height:1.4}.kanban-plugin__lane-setting-wrapper>div{border-top:none;border-bottom:none;padding:10px 15px;margin-bottom:0}.kanban-plugin__lane-setting-wrapper>div:last-child{border-bottom:1px solid var(--background-modifier-border);margin-bottom:10px}.kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),.2);background-color:rgba(var(--background-modifier-error-rgb),.1);border-radius:4px;padding:10px;margin:5px 10px}.theme-dark .kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button,.kanban-plugin__archive-lane-button{display:flex;align-items:center;justify-content:center;font-size:.75rem;width:50%}.kanban-plugin__delete-lane-button{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__action-confirm-text{font-size:.875rem;color:var(--text-error);margin-bottom:10px;line-height:1.4}button.kanban-plugin__confirm-action-button{border:1px solid rgba(var(--background-modifier-error-rgb),.2);margin-right:5px;color:var(--text-error)}button.kanban-plugin__confirm-action-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.5)}button.kanban-plugin__cancel-action-button{border:1px solid var(--background-modifier-border)}.kanban-plugin__grow-wrap{width:100%;display:grid}.kanban-plugin__grow-wrap:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}.kanban-plugin__grow-wrap>textarea{resize:none;overflow:hidden;tab-size:2}.kanban-plugin__grow-wrap>textarea:focus{border:none;box-shadow:none}.kanban-plugin__grow-wrap>textarea,.kanban-plugin__grow-wrap:after{border:none;border-radius:0;padding:0;font:inherit;line-height:var(--line-height-tight);grid-area:1 / 1 / 2 / 2;font-size:.875rem;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap}.kanban-plugin__autocomplete{font-size:.875rem;border:1px solid var(--background-modifier-border);background-color:var(--background-primary);list-style:none;padding:0;margin:0;min-width:20ch;max-width:40ch;max-height:200px;border-radius:6px;box-shadow:0 15px 25px #0003;overflow-x:hidden;overflow-y:auto}.kanban-plugin__autocomplete li{margin:0}.kanban-plugin__autocomplete li em{opacity:.6}.kanban-plugin .textcomplete-footer,.kanban-plugin .textcomplete-header{display:none}.kanban-plugin__autocomplete-item-active,.kanban-plugin__autocomplete-item{border-top:1px solid var(--background-modifier-border);padding:4px 6px;cursor:var(--cursor)}.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item,.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item-active{border-top:none}.kanban-plugin__autocomplete-item:hover,.kanban-plugin__autocomplete-item-active{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__file-suggestion-wrapper{display:flex;line-height:1.2}.kanban-plugin__file-suggestion-icon{flex-shrink:0;flex-grow:0;padding-right:4px}.kanban-plugin__file-suggestion-subtitle{font-size:.875em;color:var(--text-muted)}.kanban-plugin__autocomplete-item:hover .kanban-plugin__file-suggestion-subtitle,.kanban-plugin__autocomplete-item-active .kanban-plugin__file-suggestion-subtitle{color:var(--text-on-accent)}.modal.kanban-plugin__board-settings-modal{width:var(--modal-width);height:var(--modal-height);max-height:var(--modal-max-height);max-width:var(--modal-max-width);padding:0;display:flex;flex-direction:column}.modal.kanban-plugin__board-settings-modal .modal-content{padding:30px 50px;height:100%;overflow-y:auto;overflow-x:hidden;margin:0}.kanban-plugin__board-settings-modal .setting-item{flex-wrap:wrap;justify-content:space-between}.kanban-plugin__board-settings-modal .setting-item-info{max-width:400px;min-width:300px;width:50%}.kanban-plugin__board-settings-modal .setting-item-control{min-width:300px;flex-shrink:0}.kanban-plugin__board-settings-modal .choices{width:100%;text-align:left}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__inner{background-color:var(--background-primary);border-color:var(--background-modifier-border);padding:0;min-height:0}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__input{background-color:var(--background-primary);border-bottom-color:var(--background-modifier-border);font-size:14px}.kanban-plugin__board-settings-modal .choices__input{border-radius:0;border-top:none;border-left:none;border-right:none}.kanban-plugin__board-settings-modal .choices__list[role=listbox]{overflow-x:hidden}.kanban-plugin__board-settings-modal .choices__list--single{padding:4px 20px 4px 6px}.kanban-plugin__board-settings-modal .is-open .choices__list--dropdown,.kanban-plugin__board-settings-modal .choices__list--dropdown{background-color:var(--background-primary);border-color:var(--background-modifier-border);word-break:normal;max-height:200px;display:flex;flex-direction:column}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable:after{display:none}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable{padding:4px 6px}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item.is-highlighted{background-color:var(--background-primary-alt)}.kanban-plugin__board-settings-modal .choices__placeholder{opacity:1;color:var(--text-muted)}.kanban-plugin__board-settings-modal .error{border-color:var(--background-modifier-error-hover)!important}.kanban-plugin__date-picker{position:absolute;z-index:var(--layer-popover);--cell-size: 2.4em}.kanban-plugin__date-picker .flatpickr-input{width:0;height:0;opacity:0;border:none;padding:0;display:block;margin-bottom:-1px}.kanban-plugin__date-picker .flatpickr-current-month{color:var(--text-normal);font-weight:600;font-size:inherit;width:100%;position:static;height:auto;display:flex;align-items:center;justify-content:center;padding:0}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:var(--text-normal)}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{fill:currentColor}.kanban-plugin__date-picker .flatpickr-calendar{font-size:13px;overflow:hidden;background-color:var(--background-primary);width:calc(var(--cell-size) * 7 + 8px);box-shadow:0 0 0 1px var(--background-modifier-border),0 15px 25px #0003}.kanban-plugin__date-picker .flatpickr-months{font-size:13px;padding:2px 2px 4px;align-items:center}.kanban-plugin__date-picker .flatpickr-months .flatpickr-current-month input.cur-year,.kanban-plugin__date-picker .flatpickr-months select{border-radius:4px;padding:4px}.kanban-plugin__date-picker .flatpickr-months .numInputWrapper{border-radius:4px}.kanban-plugin__date-picker .flatpickr-months .flatpickr-month{width:100%;height:auto}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month{color:var(--text-normal);fill:currentColor;border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;height:auto;padding:5px;position:static;flex-shrink:0}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover{background-color:var(--background-primary-alt);color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover svg,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover svg{fill:currentColor}.kanban-plugin__date-picker .flatpickr-current-month .flatpickr-monthDropdown-months{color:var(--text-normal);font-weight:inherit;margin-right:5px}.kanban-plugin__date-picker .flatpickr-current-month input.cur-year{color:var(--text-normal);font-weight:inherit}.kanban-plugin__date-picker .flatpickr-weekdays{height:auto;padding:8px 0 12px}.kanban-plugin__date-picker span.flatpickr-weekday{font-weight:400;color:var(--text-muted)}.kanban-plugin__date-picker .flatpickr-innerContainer{padding:4px}.kanban-plugin__date-picker .flatpickr-day{color:var(--text-normal);display:inline-flex;align-items:center;justify-content:center;width:var(--cell-size);height:var(--cell-size);line-height:1;border-radius:6px}.kanban-plugin__date-picker .flatpickr-day.today{border-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-day.today:hover{color:var(--text-normal);border-color:var(--interactive-accent);background-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.selected{border-color:var(--interactive-accent);background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__date-picker .flatpickr-day.selected:hover{border-color:var(--interactive-accent);background-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-days{width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .dayContainer{width:calc(var(--cell-size) * 7);min-width:calc(var(--cell-size) * 7);max-width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .flatpickr-day.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.today.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day:focus,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:focus,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:focus{background-color:var(--background-primary-alt);border-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled,.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed,.kanban-plugin__date-picker .flatpickr-day.notAllowed.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed.nextMonthDay{color:var(--text-faint)}.kanban-plugin__time-picker{position:absolute;max-height:250px;overflow:auto;border-radius:4px;border:1px solid var(--background-modifier-border);box-shadow:0 2px 8px var(--background-modifier-box-shadow);background:var(--background-primary);color:var(--text-normal);font-size:14px;z-index:var(--layer-menu)}.kanban-plugin__time-picker-item{display:flex;align-items:center;color:var(--text-muted);cursor:var(--cursor);line-height:1;padding:6px 8px}.kanban-plugin__time-picker-check{visibility:hidden;display:inline-flex;margin-right:5px}.kanban-plugin__time-picker-item.is-hour{color:var(--text-normal);font-weight:600}.kanban-plugin__time-picker-item.is-selected .kanban-plugin__time-picker-check{visibility:visible}.kanban-plugin__time-picker-item:hover,.kanban-plugin__time-picker-item.is-selected{background:var(--background-secondary)}.kanban-plugin mark{background-color:var(--text-highlight-bg)}.kanban-plugin__draggable-setting-container{border-top:0;padding:0;flex-direction:column}.kanban-plugin__draggable-setting-container>div{width:100%;margin-right:0!important}.kanban-plugin__setting-item-wrapper{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__draggable-setting-container>.kanban-plugin__placeholder{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__setting-item{background-color:var(--background-secondary);width:100%;font-size:16px;display:flex;align-items:flex-start;padding:12px;color:var(--text-muted)}.kanban-plugin__drag-container .kanban-plugin__setting-item{border:1px solid hsla(var(--interactive-accent-hsl),.8);box-shadow:0 15px 25px #0003,0 0 0 2px hsla(var(--interactive-accent-hsl),.8)}.kanban-plugin__setting-controls-wrapper{flex-grow:1;flex-shrink:1}.kanban-plugin__setting-input-wrapper{display:flex;flex-wrap:wrap;margin-bottom:1rem}.kanban-plugin__setting-input-wrapper>div{margin-right:10px}.kanban-plugin__setting-toggle-wrapper>div{display:flex;align-items:center;line-height:1;margin-bottom:10px}.kanban-plugin__setting-toggle-wrapper .checkbox-container{margin-right:10px}.kanban-plugin__setting-button-wrapper{display:flex;justify-content:flex-end;flex-grow:1;flex-shrink:0;max-width:25px}.kanban-plugin__setting-button-wrapper>div{margin-left:12px}.kanban-plugin__setting-key-input-wrapper{margin:1rem 0}.kanban-plugin__setting-key-input-wrapper>input{margin-right:10px}.kanban-plugin__date-color-input-wrapper,.kanban-plugin__tag-color-input-wrapper{display:flex;flex-direction:column;flex-grow:1;gap:1rem}.kanban-plugin__add-tag-color-button{align-self:baseline;margin:0}.kanban-plugin__date-color-wrapper,.kanban-plugin__tag-color-input .kanban-plugin__item-tags{background-color:var(--background-primary);padding:10px;margin:0;border-radius:4px}.kanban-plugin__tag-color-input .kanban-plugin__item-tag{margin-top:0;font-size:13px;font-weight:500;line-height:1.5}.kanban-plugin__item-metadata>.kanban-plugin__item-metadata-date-wrapper .is-button:hover,.kanban-plugin__item-metadata>.kanban-plugin__item-metadata-date-wrapper{display:inline-block;color:var(--date-color, var(--text-muted));line-height:1}.kanban-plugin__item-metadata>.kanban-plugin__item-metadata-date-wrapper.has-background{background-color:var(--date-background-color, transparent);margin-top:4px;border-radius:var(--tag-radius);padding:var(--tag-padding-y) var(--tag-padding-x)}.kanban-plugin__date-color-input-wrapper input[type=number]{width:75px;padding:.6em .8em;height:auto;border-radius:.5em}.kanban-plugin__date-color-input-wrapper .kanban-plugin__setting-item-label{margin-bottom:0}.kanban-plugin__date-color-config{padding:0 0 10px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}.kanban-plugin__date-color-wrapper{display:inline-block;margin-top:10px}.kanban-plugin__date-color-wrapper .kanban-plugin__item-metadata{padding:0}.kanban-plugin__metadata-setting-desc{font-size:14px}.kanban-plugin__setting-button-spacer{visibility:hidden}.kanban-plugin__setting-item-label{font-size:12px;font-weight:bold;margin-bottom:5px}.kanban-plugin__setting-toggle-wrapper .kanban-plugin__setting-item-label{margin-bottom:0}.kanban-plugin__hitbox{border:2px dashed tomato}.kanban-plugin__placeholder{flex-grow:0;flex-shrink:0;width:0;height:0;pointer-events:none}.kanban-plugin__placeholder[data-axis=horizontal]{height:100%}.kanban-plugin__placeholder[data-axis=vertical]{width:100%}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar{background-color:transparent;width:16px;height:16px}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar-thumb{border:4px solid transparent;background-clip:content-box}.kanban-plugin__scroll-container{will-change:transform}.kanban-plugin__scroll-container.kanban-plugin__horizontal{overflow-y:hidden;overflow-x:auto}.kanban-plugin__scroll-container.kanban-plugin__vertical{overflow-y:auto;overflow-x:hidden}.kanban-plugin__drag-container{contain:layout size;z-index:10000;pointer-events:none;position:fixed;top:0;left:0}.kanban-plugin__loading{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.sk-pulse{width:60px;height:60px;background-color:var(--text-faint);border-radius:100%;animation:sk-pulse 1.2s infinite cubic-bezier(.455,.03,.515,.955)}@keyframes sk-pulse{0%{transform:scale(0)}to{transform:scale(1);opacity:0}}.kanban-plugin__color-picker-wrapper{position:relative}.kanban-plugin__color-picker{position:absolute;top:-5px;left:0;transform:translateY(-100%)} diff --git a/.obsidian/plugins/obsidian-plaintext/data.json b/.obsidian/plugins/obsidian-plaintext/data.json new file mode 100644 index 0000000..290370e --- /dev/null +++ b/.obsidian/plugins/obsidian-plaintext/data.json @@ -0,0 +1,8 @@ +{ + "destroyOtherPlugins": false, + "extensions": [ + "sql", + "sh", + "json" + ] +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-plaintext/main.js b/.obsidian/plugins/obsidian-plaintext/main.js new file mode 100644 index 0000000..0b56b34 --- /dev/null +++ b/.obsidian/plugins/obsidian-plaintext/main.js @@ -0,0 +1,10317 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ROLLUP +if you want to view the source visit the plugins github repository +*/ + +'use strict'; + +var obsidian = require('obsidian'); + +/*! ***************************************************************************** +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. +***************************************************************************** */ + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +/** + * Extensions obsidian supports natively. + * Taken from the help page: https://help.obsidian.md/Advanced+topics/Accepted+file+formats + * + * @version 0.2.0 + * @author dbarenholz + * @since 2022/08/13 + */ +const obsidianExts = new Set([ + "md", + "png", + "jpg", + "jpeg", + "gif", + "bmp", + "svg", + "mp3", + "webm", + "wav", + "m4a", + "ogg", + "3gp", + "flac", + "mp4", + "webm", + "ogv", + "mov", + "mkv", + "pdf", +]); +/** + * Takes in a list of extensions, and removes extensions if they are present in the obsidianExts set. + * + * @param exts extensions to process. + * @returns All extensions in exts, except if they're present in obsidianExts. + */ +const removeObsidianExtensions = (exts) => { + return exts.filter(ext => !obsidianExts.has(ext)); +}; +/** + * Maps pluginIds to extensions that they use. + * These extensions will be filtered out by default. + * + * @version 0.2.0 + * @author dbarenholz + * @since 2022/08/13 + */ +const otherExts = new Map([ + // https://github.com/deathau/cooklang-obsidian + ["cooklang-obsidian", "cook"], + // https://github.com/deathau/csv-obsidian + ["csv-obsidian", "csv"], + // https://github.com/caronchen/obsidian-chartsview-plugin + ["obsidian-chartsview-plugin", "csv"], + // https://github.com/Darakah/obsidian-fountain + ["obsidian-fountain", "fountain"], + // https://github.com/deathau/ini-obsidian + ["ini-obsidian", "ini"], + // https://github.com/deathau/txt-as-md-obsidian + ["txt-as-md-obsidian", "txt"], + // https://github.com/mkozhukharenko/mdx-as-md-obsidian + ["mdx-as-md-obsidian", "mdx"], + // https://github.com/ryanpcmcquen/obsidian-org-mode + ["obsidian-org-mode", "org"], + // https://github.com/tgrosinger/ledger-obsidian + ["ledger-obsidian", "ledger"], + // https://github.com/zsviczian/obsidian-excalidraw-plugin + ["obsidian-excalidraw-plugin", "excalidraw"], +]); +// Helper to make removeOtherExtensions easier. +const otherExtsSet = new Set(Array.from(otherExts.values())); +/** + * Takes in a list of extensions, and removes extensions if they are present in the values of otherExts. + * + * @param exts extensions to process. + * @returns All extensions in exts, except if they're present in the values of otherExts. + */ +const removeOtherExtensions = (exts) => { + return exts.filter(ext => !otherExtsSet.has(ext)); +}; + +/** + * The defaults: don't destroy other plugins, no extensions to consider for the plaintext plugin. + * + * @version 0.2.0 + * @author dbarenholz + */ +const DEFAULT_SETTINGS = { + destroyOtherPlugins: false, + extensions: [], +}; +/** + * Processes all extensions. + * @param _this the settings tab + * + * @version 0.2.0 + * @author dbarenholz + */ +const processExts = (_this) => __awaiter(void 0, void 0, void 0, function* () { + // Get the currently enabled extensions from the plaintext plugin. + let current_exts = Array.from(_this.plugin.settings.extensions); + current_exts = + current_exts == [] || current_exts == null || current_exts == undefined + ? [] + : Array.from(new Set(current_exts)); + // DEBUG + // console.log(`[Plaintext]: Current exts=${Array.from(_this.plugin.settings.extensions).toString()}`); + // Grab the set of new extensions + let new_exts = _this.changes == null || _this.changes == undefined ? [] : _this.changes + .split(",") // split on comma + .map((s) => s.toLowerCase().trim()) // convert to lowercase and remove spaces + .filter((s) => s != ""); // remove empty elements + // Remove obsidian extensions from it + new_exts = removeObsidianExtensions(new_exts); + // If set to NOT destroy, remove other extensions + if (!_this.plugin.settings.destroyOtherPlugins) { + new_exts = removeOtherExtensions(new_exts); + } + // DEBUG + // console.log(`[Plaintext]: New exts=${new_exts}`); + // Find which extensions to add. + let to_add = new_exts.filter(nExt => !current_exts.includes(nExt)); + // DEBUG + // console.log(`[Plaintext]: add=${to_add}`); + // Actually add the extensions + _this.plugin.addExtensions(to_add); + // Find which extensions to remove. + let to_remove = current_exts.filter(cExt => !new_exts.includes(cExt)); + // DEBUG + // console.log(`[Plaintext]: remove=${to_remove}`); + // Actually remove the extensions + _this.plugin.removeExtensions(to_remove); + // Save settings + const updated_exts = current_exts.concat(to_add).filter((ext) => !to_remove.includes(ext)); + _this.plugin.settings.extensions = updated_exts; + yield _this.plugin.saveSettings(); + // TODO: Somehow update visible extensions in settings +}); +/** + * The settings tab itself. + * + * @version 0.2.0 + * @author dbarenholz + */ +class PlaintextSettingTab extends obsidian.PluginSettingTab { + // Constructor: Creates a settingtab for this plugin. + constructor(app, plugin) { + super(app, plugin); + this.plugin = plugin; + this.changes = null; + } + display() { + // Retrieve the container element + let { containerEl } = this; + containerEl.empty(); + // Write the title of the settings page. + containerEl.createEl("h2", { text: "Plaintext" }); + // Add extension setting + new obsidian.Setting(containerEl) + .setName("Extensions") + .setDesc("List of extensions to interpret as plaintext, comma-separated." + + " Will automatically convert to a set when reopening the Obsidian Plaintext settings window." + + " Obsidian's default extensions and extensions other plugins use are filtered out by default!") + .addText((text) => { + text + .setPlaceholder("Extensions") + .setValue(Array.from(this.plugin.settings.extensions).toString()) + .onChange((value) => (this.changes = value.toLowerCase().trim())); + // Need to use anonymous function calling separate function + text.inputEl.onblur = () => __awaiter(this, void 0, void 0, function* () { yield processExts(this); }); + }); + // Add destroy setting + new obsidian.Setting(containerEl) + .setName("Destroy Other Plugins") + .setDesc("There may be other plugins that already have registered extensions." + + " By turning this setting ON, you willingly disregard those plugins, and will highly likely break them." + + " **ONLY TURN THIS ON IF YOU KNOW WHAT YOU'RE DOING!").addToggle((toggle) => { + toggle.setValue(this.plugin.settings.destroyOtherPlugins); + toggle.onChange((destroy) => __awaiter(this, void 0, void 0, function* () { + this.plugin.settings.destroyOtherPlugins = destroy; + if (destroy) { + console.log(`[Plaintext]: Happily destroying plugins.`); + } + else { + console.log(`[Plaintext]: Protects your from destroying other plugins.`); + // TODO: Somehow remove potentially created views, created by this plugin. + } + yield this.plugin.saveSettings(); + })); + }); + } +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var codemirror = {exports: {}}; + +(function (module, exports) { +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// This is CodeMirror (https://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function (global, factory) { + module.exports = factory() ; +}(commonjsGlobal, (function () { + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + var userAgent = navigator.userAgent; + var platform = navigator.platform; + + var gecko = /gecko\/\d/i.test(userAgent); + var ie_upto10 = /MSIE \d/.test(userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); + var edge = /Edge\/(\d+)/.exec(userAgent); + var ie = ie_upto10 || ie_11up || edge; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); + var webkit = !edge && /WebKit\//.test(userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); + var chrome = !edge && /Chrome\//.test(userAgent); + var presto = /Opera\//.test(userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); + var phantom = /PhantomJS/.test(userAgent); + + var ios = safari && (/Mobile\/\w+/.test(userAgent) || navigator.maxTouchPoints > 2); + var android = /Android/.test(userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); + var mac = ios || /Mac/.test(platform); + var chromeOS = /\bCrOS\b/.test(userAgent); + var windows = /win/i.test(platform); + + var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) { presto_version = Number(presto_version[1]); } + if (presto_version && presto_version >= 15) { presto = false; webkit = true; } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || (ie && ie_version >= 9); + + function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") } + + var rmClass = function(node, cls) { + var current = node.className; + var match = classTest(cls).exec(current); + if (match) { + var after = current.slice(match.index + match[0].length); + node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); + } + }; + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + { e.removeChild(e.firstChild); } + return e + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e) + } + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) { e.className = className; } + if (style) { e.style.cssText = style; } + if (typeof content == "string") { e.appendChild(document.createTextNode(content)); } + else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } } + return e + } + // wrapper for elt, which removes the elt from the accessibility tree + function eltP(tag, content, className, style) { + var e = elt(tag, content, className, style); + e.setAttribute("role", "presentation"); + return e + } + + var range; + if (document.createRange) { range = function(node, start, end, endNode) { + var r = document.createRange(); + r.setEnd(endNode || node, end); + r.setStart(node, start); + return r + }; } + else { range = function(node, start, end) { + var r = document.body.createTextRange(); + try { r.moveToElementText(node.parentNode); } + catch(e) { return r } + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r + }; } + + function contains(parent, child) { + if (child.nodeType == 3) // Android browser always returns false when child is a textnode + { child = child.parentNode; } + if (parent.contains) + { return parent.contains(child) } + do { + if (child.nodeType == 11) { child = child.host; } + if (child == parent) { return true } + } while (child = child.parentNode) + } + + function activeElt() { + // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. + // IE < 10 will throw when accessed while the page is loading or in an iframe. + // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. + var activeElement; + try { + activeElement = document.activeElement; + } catch(e) { + activeElement = document.body || null; + } + while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) + { activeElement = activeElement.shadowRoot.activeElement; } + return activeElement + } + + function addClass(node, cls) { + var current = node.className; + if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; } + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) + { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } } + return b + } + + var selectInput = function(node) { node.select(); }; + if (ios) // Mobile Safari apparently has a bug where select() is broken. + { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; } + else if (ie) // Suppress mysterious IE10 errors + { selectInput = function(node) { try { node.select(); } catch(_e) {} }; } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args)} + } + + function copyObj(obj, target, overwrite) { + if (!target) { target = {}; } + for (var prop in obj) + { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) + { target[prop] = obj[prop]; } } + return target + } + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) { end = string.length; } + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) + { return n + (end - i) } + n += nextTab - i; + n += tabSize - (n % tabSize); + i = nextTab + 1; + } + } + + var Delayed = function() { + this.id = null; + this.f = null; + this.time = 0; + this.handler = bind(this.onTimeout, this); + }; + Delayed.prototype.onTimeout = function (self) { + self.id = 0; + if (self.time <= +new Date) { + self.f(); + } else { + setTimeout(self.handler, self.time - +new Date); + } + }; + Delayed.prototype.set = function (ms, f) { + this.f = f; + var time = +new Date + ms; + if (!this.id || time < this.time) { + clearTimeout(this.id); + this.id = setTimeout(this.handler, ms); + this.time = time; + } + }; + + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) + { if (array[i] == elt) { return i } } + return -1 + } + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerGap = 50; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = {toString: function(){return "CodeMirror.Pass"}}; + + // Reused option objects for setSelection & friends + var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) { nextTab = string.length; } + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) + { return pos + Math.min(skipped, goal - col) } + col += nextTab - pos; + col += tabSize - (col % tabSize); + pos = nextTab + 1; + if (col >= goal) { return pos } + } + } + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + { spaceStrs.push(lst(spaceStrs) + " "); } + return spaceStrs[n] + } + + function lst(arr) { return arr[arr.length-1] } + + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); } + return out + } + + function insertSorted(array, value, score) { + var pos = 0, priority = score(value); + while (pos < array.length && score(array[pos]) <= priority) { pos++; } + array.splice(pos, 0, value); + } + + function nothing() {} + + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + nothing.prototype = base; + inst = new nothing(); + } + if (props) { copyObj(props, inst); } + return inst + } + + var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + function isWordCharBasic(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)) + } + function isWordChar(ch, helper) { + if (!helper) { return isWordCharBasic(ch) } + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true } + return helper.test(ch) + } + + function isEmpty(obj) { + for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } } + return true + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; + function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) } + + // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range. + function skipExtendingChars(str, pos, dir) { + while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; } + return pos + } + + // Returns the value from the range [`from`; `to`] that satisfies + // `pred` and is closest to `from`. Assumes that at least `to` + // satisfies `pred`. Supports `from` being greater than `to`. + function findFirst(pred, from, to) { + // At any point we are certain `to` satisfies `pred`, don't know + // whether `from` does. + var dir = from > to ? -1 : 1; + for (;;) { + if (from == to) { return from } + var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); + if (mid == from) { return pred(mid) ? from : to } + if (pred(mid)) { to = mid; } + else { from = mid + dir; } + } + } + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) { return f(from, to, "ltr", 0) } + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i); + found = true; + } + } + if (!found) { f(from, to, "ltr"); } + } + + var bidiOther = null; + function getBidiPartAt(order, ch, sticky) { + var found; + bidiOther = null; + for (var i = 0; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < ch && cur.to > ch) { return i } + if (cur.to == ch) { + if (cur.from != cur.to && sticky == "before") { found = i; } + else { bidiOther = i; } + } + if (cur.from == ch) { + if (cur.from != cur.to && sticky != "before") { found = i; } + else { bidiOther = i; } + } + } + return found != null ? found : bidiOther + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6f9 + var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; + function charType(code) { + if (code <= 0xf7) { return lowTypes.charAt(code) } + else if (0x590 <= code && code <= 0x5f4) { return "R" } + else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) } + else if (0x6ee <= code && code <= 0x8ac) { return "r" } + else if (0x2000 <= code && code <= 0x200b) { return "w" } + else if (code == 0x200c) { return "b" } + else { return "L" } + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; this.to = to; + } + + return function(str, direction) { + var outerType = direction == "ltr" ? "L" : "R"; + + if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false } + var len = str.length, types = []; + for (var i = 0; i < len; ++i) + { types.push(charType(str.charCodeAt(i))); } + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) { + var type = types[i$1]; + if (type == "m") { types[i$1] = prev; } + else { prev = type; } + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) { + var type$1 = types[i$2]; + if (type$1 == "1" && cur == "r") { types[i$2] = "n"; } + else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { + var type$2 = types[i$3]; + if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; } + else if (type$2 == "," && prev$1 == types[i$3+1] && + (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; } + prev$1 = type$2; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i$4 = 0; i$4 < len; ++i$4) { + var type$3 = types[i$4]; + if (type$3 == ",") { types[i$4] = "N"; } + else if (type$3 == "%") { + var end = (void 0); + for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; + for (var j = i$4; j < end; ++j) { types[j] = replace; } + i$4 = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { + var type$4 = types[i$5]; + if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; } + else if (isStrong.test(type$4)) { cur$1 = type$4; } + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i$6 = 0; i$6 < len; ++i$6) { + if (isNeutral.test(types[i$6])) { + var end$1 = (void 0); + for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} + var before = (i$6 ? types[i$6-1] : outerType) == "L"; + var after = (end$1 < len ? types[end$1] : outerType) == "L"; + var replace$1 = before == after ? (before ? "L" : "R") : outerType; + for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; } + i$6 = end$1 - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i$7 = 0; i$7 < len;) { + if (countsAsLeft.test(types[i$7])) { + var start = i$7; + for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} + order.push(new BidiSpan(0, start, i$7)); + } else { + var pos = i$7, at = order.length, isRTL = direction == "rtl" ? 1 : 0; + for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} + for (var j$2 = pos; j$2 < i$7;) { + if (countsAsNum.test(types[j$2])) { + if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; } + var nstart = j$2; + for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} + order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + at += isRTL; + pos = j$2; + } else { ++j$2; } + } + if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); } + } + } + if (direction == "ltr") { + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + } + + return direction == "rtl" ? order.reverse() : order + } + })(); + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line, direction) { + var order = line.order; + if (order == null) { order = line.order = bidiOrdering(line.text, direction); } + return order + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var noHandlers = []; + + var on = function(emitter, type, f) { + if (emitter.addEventListener) { + emitter.addEventListener(type, f, false); + } else if (emitter.attachEvent) { + emitter.attachEvent("on" + type, f); + } else { + var map = emitter._handlers || (emitter._handlers = {}); + map[type] = (map[type] || noHandlers).concat(f); + } + }; + + function getHandlers(emitter, type) { + return emitter._handlers && emitter._handlers[type] || noHandlers + } + + function off(emitter, type, f) { + if (emitter.removeEventListener) { + emitter.removeEventListener(type, f, false); + } else if (emitter.detachEvent) { + emitter.detachEvent("on" + type, f); + } else { + var map = emitter._handlers, arr = map && map[type]; + if (arr) { + var index = indexOf(arr, f); + if (index > -1) + { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); } + } + } + } + + function signal(emitter, type /*, values...*/) { + var handlers = getHandlers(emitter, type); + if (!handlers.length) { return } + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); } + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + if (typeof e == "string") + { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; } + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore + } + + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) { return } + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1) + { set.push(arr[i]); } } + } + + function hasHandler(emitter, type) { + return getHandlers(emitter, type).length > 0 + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function(type, f) {on(this, type, f);}; + ctor.prototype.off = function(type, f) {off(this, type, f);}; + } + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + function e_preventDefault(e) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + function e_stopPropagation(e) { + if (e.stopPropagation) { e.stopPropagation(); } + else { e.cancelBubble = true; } + } + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + + function e_target(e) {return e.target || e.srcElement} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) { b = 1; } + else if (e.button & 2) { b = 3; } + else if (e.button & 4) { b = 2; } + } + if (mac && e.ctrlKey && b == 1) { b = 3; } + return b + } + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) { return false } + var div = elt('div'); + return "draggable" in div || "dragDrop" in div + }(); + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); } + } + var node = zwspSupported ? elt("span", "\u200b") : + elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + node.setAttribute("cm-text", ""); + return node + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) { return badBidiRects } + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + var r1 = range(txt, 1, 2).getBoundingClientRect(); + removeChildren(measure); + if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780) + return badBidiRects = (r1.right - r0.right < 3) + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) { nl = string.length; } + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result + } : function (string) { return string.split(/\r\n?|\n/); }; + + var hasSelection = window.getSelection ? function (te) { + try { return te.selectionStart != te.selectionEnd } + catch(e) { return false } + } : function (te) { + var range; + try {range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) { return false } + return range.compareEndPoints("StartToEnd", range) != 0 + }; + + var hasCopyEvent = (function () { + var e = elt("div"); + if ("oncopy" in e) { return true } + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function" + })(); + + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) { return badZoomedRects } + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1 + } + + // Known modes, by name and by MIME + var modes = {}, mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + function defineMode(name, mode) { + if (arguments.length > 2) + { mode.dependencies = Array.prototype.slice.call(arguments, 2); } + modes[name] = mode; + } + + function defineMIME(mime, spec) { + mimeModes[mime] = spec; + } + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + function resolveMode(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") { found = {name: found}; } + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return resolveMode("application/xml") + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { + return resolveMode("application/json") + } + if (typeof spec == "string") { return {name: spec} } + else { return spec || {name: "null"} } + } + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + function getMode(options, spec) { + spec = resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) { return getMode(options, "text/plain") } + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) { continue } + if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; } + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) { modeObj.helperType = spec.helperType; } + if (spec.modeProps) { for (var prop$1 in spec.modeProps) + { modeObj[prop$1] = spec.modeProps[prop$1]; } } + + return modeObj + } + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = {}; + function extendMode(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + } + + function copyState(mode, state) { + if (state === true) { return state } + if (mode.copyState) { return mode.copyState(state) } + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) { val = val.concat([]); } + nstate[n] = val; + } + return nstate + } + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + function innerMode(mode, state) { + var info; + while (mode.innerMode) { + info = mode.innerMode(state); + if (!info || info.mode == mode) { break } + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state} + } + + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true + } + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = function(string, tabSize, lineOracle) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + this.lineOracle = lineOracle; + }; + + StringStream.prototype.eol = function () {return this.pos >= this.string.length}; + StringStream.prototype.sol = function () {return this.pos == this.lineStart}; + StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined}; + StringStream.prototype.next = function () { + if (this.pos < this.string.length) + { return this.string.charAt(this.pos++) } + }; + StringStream.prototype.eat = function (match) { + var ch = this.string.charAt(this.pos); + var ok; + if (typeof match == "string") { ok = ch == match; } + else { ok = ch && (match.test ? match.test(ch) : match(ch)); } + if (ok) {++this.pos; return ch} + }; + StringStream.prototype.eatWhile = function (match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start + }; + StringStream.prototype.eatSpace = function () { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; } + return this.pos > start + }; + StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;}; + StringStream.prototype.skipTo = function (ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true} + }; + StringStream.prototype.backUp = function (n) {this.pos -= n;}; + StringStream.prototype.column = function () { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.indentation = function () { + return countColumn(this.string, null, this.tabSize) - + (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.match = function (pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; }; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) { this.pos += pattern.length; } + return true + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) { return null } + if (match && consume !== false) { this.pos += match[0].length; } + return match + } + }; + StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)}; + StringStream.prototype.hideFirstChars = function (n, inner) { + this.lineStart += n; + try { return inner() } + finally { this.lineStart -= n; } + }; + StringStream.prototype.lookAhead = function (n) { + var oracle = this.lineOracle; + return oracle && oracle.lookAhead(n) + }; + StringStream.prototype.baseToken = function () { + var oracle = this.lineOracle; + return oracle && oracle.baseToken(this.pos) + }; + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") } + var chunk = doc; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break } + n -= sz; + } + } + return chunk.lines[n] + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function (line) { + var text = line.text; + if (n == end.line) { text = text.slice(0, end.ch); } + if (n == start.line) { text = text.slice(start.ch); } + out.push(text); + ++n; + }); + return out + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value + return out + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } } + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) { return null } + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) { break } + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) { + var child = chunk.children[i$1], ch = child.height; + if (h < ch) { chunk = child; continue outer } + h -= ch; + n += child.chunkSize(); + } + return n + } while (!chunk.lines) + var i = 0; + for (; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) { break } + h -= lh; + } + return n + i + } + + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size} + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)) + } + + // A Pos instance represents a position within the text. + function Pos(line, ch, sticky) { + if ( sticky === void 0 ) sticky = null; + + if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) } + this.line = line; + this.ch = ch; + this.sticky = sticky; + } + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + function cmp(a, b) { return a.line - b.line || a.ch - b.ch } + + function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 } + + function copyPos(x) {return Pos(x.line, x.ch)} + function maxPos(a, b) { return cmp(a, b) < 0 ? b : a } + function minPos(a, b) { return cmp(a, b) < 0 ? a : b } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))} + function clipPos(doc, pos) { + if (pos.line < doc.first) { return Pos(doc.first, 0) } + var last = doc.first + doc.size - 1; + if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) } + return clipToLen(pos, getLine(doc, pos.line).text.length) + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) { return Pos(pos.line, linelen) } + else if (ch < 0) { return Pos(pos.line, 0) } + else { return pos } + } + function clipPosArray(doc, array) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); } + return out + } + + var SavedContext = function(state, lookAhead) { + this.state = state; + this.lookAhead = lookAhead; + }; + + var Context = function(doc, state, line, lookAhead) { + this.state = state; + this.doc = doc; + this.line = line; + this.maxLookAhead = lookAhead || 0; + this.baseTokens = null; + this.baseTokenPos = 1; + }; + + Context.prototype.lookAhead = function (n) { + var line = this.doc.getLine(this.line + n); + if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; } + return line + }; + + Context.prototype.baseToken = function (n) { + if (!this.baseTokens) { return null } + while (this.baseTokens[this.baseTokenPos] <= n) + { this.baseTokenPos += 2; } + var type = this.baseTokens[this.baseTokenPos + 1]; + return {type: type && type.replace(/( |^)overlay .*/, ""), + size: this.baseTokens[this.baseTokenPos] - n} + }; + + Context.prototype.nextLine = function () { + this.line++; + if (this.maxLookAhead > 0) { this.maxLookAhead--; } + }; + + Context.fromSaved = function (doc, saved, line) { + if (saved instanceof SavedContext) + { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) } + else + { return new Context(doc, copyState(doc.mode, saved), line) } + }; + + Context.prototype.save = function (copy) { + var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; + return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state + }; + + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, context, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); }, + lineClasses, forceToEnd); + var state = context.state; + + // Run overlays, adjust style array. + var loop = function ( o ) { + context.baseTokens = st; + var overlay = cm.state.overlays[o], i = 1, at = 0; + context.state = true; + runMode(cm, line.text, overlay.mode, context, function (end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) + { st.splice(i, 1, end, st[i+1], i_end); } + i += 2; + at = Math.min(end, i_end); + } + if (!style) { return } + if (overlay.opaque) { + st.splice(start, i - start, end, "overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = (cur ? cur + " " : "") + "overlay " + style; + } + } + }, lineClasses); + context.state = state; + context.baseTokens = null; + context.baseTokenPos = 1; + }; + + for (var o = 0; o < cm.state.overlays.length; ++o) loop( o ); + + return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null} + } + + function getLineStyles(cm, line, updateFrontier) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var context = getContextBefore(cm, lineNo(line)); + var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); + var result = highlightLine(cm, line, context); + if (resetState) { context.state = resetState; } + line.stateAfter = context.save(!resetState); + line.styles = result.styles; + if (result.classes) { line.styleClasses = result.classes; } + else if (line.styleClasses) { line.styleClasses = null; } + if (updateFrontier === cm.doc.highlightFrontier) + { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); } + } + return line.styles + } + + function getContextBefore(cm, n, precise) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) { return new Context(doc, true, n) } + var start = findStartLine(cm, n, precise); + var saved = start > doc.first && getLine(doc, start - 1).stateAfter; + var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); + + doc.iter(start, n, function (line) { + processLine(cm, line.text, context); + var pos = context.line; + line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; + context.nextLine(); + }); + if (precise) { doc.modeFrontier = context.line; } + return context + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, context, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize, context); + stream.start = stream.pos = startAt || 0; + if (text == "") { callBlankLine(mode, context.state); } + while (!stream.eol()) { + readToken(mode, stream, context.state); + stream.start = stream.pos; + } + } + + function callBlankLine(mode, state) { + if (mode.blankLine) { return mode.blankLine(state) } + if (!mode.innerMode) { return } + var inner = innerMode(mode, state); + if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) } + } + + function readToken(mode, stream, state, inner) { + for (var i = 0; i < 10; i++) { + if (inner) { inner[0] = innerMode(mode, state).mode; } + var style = mode.token(stream, state); + if (stream.pos > stream.start) { return style } + } + throw new Error("Mode " + mode.name + " failed to advance stream.") + } + + var Token = function(stream, type, state) { + this.start = stream.start; this.end = stream.pos; + this.string = stream.current(); + this.type = type || null; + this.state = state; + }; + + // Utility for getTokenAt and getLineTokens + function takeToken(cm, pos, precise, asArray) { + var doc = cm.doc, mode = doc.mode, style; + pos = clipPos(doc, pos); + var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise); + var stream = new StringStream(line.text, cm.options.tabSize, context), tokens; + if (asArray) { tokens = []; } + while ((asArray || stream.pos < pos.ch) && !stream.eol()) { + stream.start = stream.pos; + style = readToken(mode, stream, context.state); + if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); } + } + return asArray ? tokens : new Token(stream, style, context.state) + } + + function extractLineClasses(type, output) { + if (type) { for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) { break } + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) + { output[prop] = lineClass[2]; } + else if (!(new RegExp("(?:^|\\s)" + lineClass[2] + "(?:$|\\s)")).test(output[prop])) + { output[prop] += " " + lineClass[2]; } + } } + return type + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; } + var curStart = 0, curStyle = null; + var stream = new StringStream(text, cm.options.tabSize, context), style; + var inner = cm.options.addModeClass && [null]; + if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); } + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) { processLine(cm, text, context, stream.pos); } + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); + } + if (inner) { + var mName = inner[0].name; + if (mName) { style = "m-" + (style ? mName + " " + style : mName); } + } + if (!flattenSpans || curStyle != style) { + while (curStart < stream.start) { + curStart = Math.min(stream.start, curStart + 5000); + f(curStart, curStyle); + } + curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 + // characters, and returns inaccurate measurements in nodes + // starting around 5000 chars. + var pos = Math.min(stream.pos, curStart + 5000); + f(pos, curStyle); + curStart = pos; + } + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, minline, doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) { return doc.first } + var line = getLine(doc, search - 1), after = line.stateAfter; + if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) + { return search } + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline + } + + function retreatFrontier(doc, n) { + doc.modeFrontier = Math.min(doc.modeFrontier, n); + if (doc.highlightFrontier < n - 10) { return } + var start = doc.first; + for (var line = n - 1; line > start; line--) { + var saved = getLine(doc, line).stateAfter; + // change is on 3 + // state on line 1 looked ahead 2 -- so saw 3 + // test 1 + 2 < 3 should cover this + if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { + start = line + 1; + break + } + } + doc.highlightFrontier = Math.min(doc.highlightFrontier, start); + } + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + function seeReadOnlySpans() { + sawReadOnlySpans = true; + } + + function seeCollapsedSpans() { + sawCollapsedSpans = true; + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) { return span } + } } + } + + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + var r; + for (var i = 0; i < spans.length; ++i) + { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } } + return r + } + + // Add a span to a line. + function addMarkedSpan(line, span, op) { + var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet)); + if (inThisOp && inThisOp.has(line.markedSpans)) { + line.markedSpans.push(span); + } else { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + if (inThisOp) { inThisOp.add(line.markedSpans); } + } + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } } + return nw + } + function markedSpansAfter(old, endCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, + span.to == null ? null : span.to - endCh)); + } + } } + return nw + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + if (change.full) { return null } + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) { return null } + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) { span.to = startCh; } + else if (sameLine) { span.to = found.to == null ? null : found.to + offset; } + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i$1 = 0; i$1 < last.length; ++i$1) { + var span$1 = last[i$1]; + if (span$1.to != null) { span$1.to += offset; } + if (span$1.from == null) { + var found$1 = getMarkedSpanFor(first, span$1.marker); + if (!found$1) { + span$1.from = offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } else { + span$1.from += offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } + } + // Make sure we didn't create any zero-length spans + if (first) { first = clearEmptySpans(first); } + if (last && last != first) { last = clearEmptySpans(last); } + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + { for (var i$2 = 0; i$2 < first.length; ++i$2) + { if (first[i$2].to == null) + { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } } + for (var i$3 = 0; i$3 < gap; ++i$3) + { newMarkers.push(gapMarkers); } + newMarkers.push(last); + } + return newMarkers + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) + { spans.splice(i--, 1); } + } + if (!spans.length) { return null } + return spans + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function (line) { + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + { (markers || (markers = [])).push(mark); } + } } + }); + if (!markers) { return null } + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue } + var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) + { newParts.push({from: p.from, to: m.from}); } + if (dto > 0 || !mk.inclusiveRight && !dto) + { newParts.push({from: m.to, to: p.to}); } + parts.splice.apply(parts, newParts); + j += newParts.length - 3; + } + } + return parts + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.detachLine(line); } + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.attachLine(line); } + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 } + function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) { return lenDiff } + var aPos = a.find(), bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) { return -fromCmp } + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) { return toCmp } + return b.id - a.id + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) + { found = sp.marker; } + } } + return found + } + function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) } + function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) } + + function collapsedSpanAround(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; } + } } + return found + } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo, from, to, marker) { + var line = getLine(doc, lineNo); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) { continue } + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue } + if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || + fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) + { return true } + } } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + { line = merged.find(-1, true).line; } + return line + } + + function visualLineEnd(line) { + var merged; + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return line + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line + ;(lines || (lines = [])).push(line); + } + return lines + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), vis = visualLine(line); + if (line == vis) { return lineN } + return lineNo(vis) + } + + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) { return lineN } + var line = getLine(doc, lineN), merged; + if (!lineIsHidden(doc, line)) { return lineN } + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return lineNo(line) + 1 + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) { continue } + if (sp.from == null) { return true } + if (sp.marker.widgetNode) { continue } + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + { return true } + } } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)) + } + if (span.marker.inclusiveRight && span.to == line.text.length) + { return true } + for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && + (sp.to == null || sp.to != span.from) && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) { return true } + } + } + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) { break } + else { h += line.height; } + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i$1 = 0; i$1 < p.children.length; ++i$1) { + var cur = p.children[i$1]; + if (cur == chunk) { break } + else { h += cur.height; } + } + } + return h + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) { return 0 } + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found$1 = merged.find(0, true); + len -= cur.text.length - found$1.from.ch; + cur = found$1.to.line; + len += cur.text.length - found$1.to.ch; + } + return len + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function (line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = function(text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + + Line.prototype.lineNo = function () { return lineNo(this) }; + eventMixin(Line); + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + if (line.order != null) { line.order = null; } + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) { return null } + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || + (cache[style] = style.replace(/\S+/g, "cm-$&")) + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content, + col: 0, pos: 0, cm: cm, + trailingSpace: false, + splitSpaces: cm.getOption("lineWrapping")}; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0); + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) + { builder.addToken = buildTokenBadBidi(builder.addToken, order); } + builder.map = []; + var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); + insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) + { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); } + if (line.styleClasses.textClass) + { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); } + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) + { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); } + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map) + ;(lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + // See issue #2901 + if (webkit) { + var last = builder.content.lastChild; + if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab"))) + { builder.content.className = "cm-tab-wrap-hack"; } + } + + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) + { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); } + + return builder + } + + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + token.setAttribute("aria-label", token.title); + return token + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { + if (!text) { return } + var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; + var special = builder.cm.state.specialChars, mustWrap = false; + var content; + if (!special.test(text)) { + builder.col += text.length; + content = document.createTextNode(displayText); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) { mustWrap = true; } + builder.pos += text.length; + } else { + content = document.createDocumentFragment(); + var pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); } + else { content.appendChild(txt); } + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) { break } + pos += skipped + 1; + var txt$1 = (void 0); + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + txt$1.setAttribute("role", "presentation"); + txt$1.setAttribute("cm-text", "\t"); + builder.col += tabWidth; + } else if (m[0] == "\r" || m[0] == "\n") { + txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); + txt$1.setAttribute("cm-text", m[0]); + builder.col += 1; + } else { + txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); + txt$1.setAttribute("cm-text", m[0]); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); } + else { content.appendChild(txt$1); } + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt$1); + builder.pos++; + } + } + builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; + if (style || startStyle || endStyle || mustWrap || css || attributes) { + var fullStyle = style || ""; + if (startStyle) { fullStyle += startStyle; } + if (endStyle) { fullStyle += endStyle; } + var token = elt("span", [content], fullStyle, css); + if (attributes) { + for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") + { token.setAttribute(attr, attributes[attr]); } } + } + return builder.content.appendChild(token) + } + builder.content.appendChild(content); + } + + // Change some spaces to NBSP to prevent the browser from collapsing + // trailing spaces at the end of a line when rendering text (issue #1362). + function splitSpaces(text, trailingBefore) { + if (text.length > 1 && !/ /.test(text)) { return text } + var spaceBefore = trailingBefore, result = ""; + for (var i = 0; i < text.length; i++) { + var ch = text.charAt(i); + if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) + { ch = "\u00a0"; } + result += ch; + spaceBefore = ch == " "; + } + return result + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function (builder, text, style, startStyle, endStyle, css, attributes) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + var part = (void 0); + for (var i = 0; i < order.length; i++) { + part = order[i]; + if (part.to > start && part.from <= start) { break } + } + if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) } + inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + } + } + + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); } + if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { + if (!widget) + { widget = builder.content.appendChild(document.createElement("span")); } + widget.setAttribute("cm-marker", marker.id); + } + if (widget) { + builder.cm.display.input.setUneditable(widget); + builder.content.appendChild(widget); + } + builder.pos += size; + builder.trailingSpace = false; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, allText = line.text, at = 0; + if (!spans) { + for (var i$1 = 1; i$1 < styles.length; i$1+=2) + { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); } + return + } + + var len = allText.length, pos = 0, i = 1, text = "", style, css; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = css = ""; + attributes = null; + collapsed = null; nextChange = Infinity; + var foundBookmarks = [], endStyles = (void 0); + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { + foundBookmarks.push(m); + } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { + if (sp.to != null && sp.to != pos && nextChange > sp.to) { + nextChange = sp.to; + spanEndStyle = ""; + } + if (m.className) { spanStyle += " " + m.className; } + if (m.css) { css = (css ? css + ";" : "") + m.css; } + if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; } + if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); } + // support for the old title property + // https://github.com/codemirror/CodeMirror/pull/5673 + if (m.title) { (attributes || (attributes = {})).title = m.title; } + if (m.attributes) { + for (var attr in m.attributes) + { (attributes || (attributes = {}))[attr] = m.attributes[attr]; } + } + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) + { collapsed = sp; } + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + } + if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) + { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } } + + if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) + { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, + collapsed.marker, collapsed.from == null); + if (collapsed.to == null) { return } + if (collapsed.to == pos) { collapsed = false; } + } + } + if (pos >= len) { break } + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break} + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array + } + + var operationGroup = null; + + function pushOperation(op) { + if (operationGroup) { + operationGroup.ops.push(op); + } else { + op.ownsGroup = operationGroup = { + ops: [op], + delayedCallbacks: [] + }; + } + } + + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, i = 0; + do { + for (; i < callbacks.length; i++) + { callbacks[i].call(null); } + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) + { while (op.cursorActivityCalled < op.cursorActivityHandlers.length) + { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } } + } + } while (i < callbacks.length) + } + + function finishOperation(op, endCb) { + var group = op.ownsGroup; + if (!group) { return } + + try { fireCallbacksForOps(group); } + finally { + operationGroup = null; + endCb(group); + } + } + + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = getHandlers(emitter, type); + if (!arr.length) { return } + var args = Array.prototype.slice.call(arguments, 2), list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + var loop = function ( i ) { + list.push(function () { return arr[i].apply(null, args); }); + }; + + for (var i = 0; i < arr.length; ++i) + loop( i ); + } + + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) { delayed[i](); } + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") { updateLineText(cm, lineView); } + else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); } + else if (type == "class") { updateLineClasses(cm, lineView); } + else if (type == "widget") { updateLineWidgets(cm, lineView, dims); } + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) + { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); } + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; } + } + return lineView.node + } + + function updateLineBackground(cm, lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) { cls += " CodeMirror-linebackground"; } + if (lineView.background) { + if (cls) { lineView.background.className = cls; } + else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + cm.display.input.setUneditable(lineView.background); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built + } + return buildLineContent(cm, lineView) + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) { lineView.node = built.pre; } + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(cm, lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + + function updateLineClasses(cm, lineView) { + updateLineBackground(cm, lineView); + if (lineView.line.wrapClass) + { ensureLineWrapped(lineView).className = lineView.line.wrapClass; } + else if (lineView.node != lineView.text) + { lineView.node.className = ""; } + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + if (lineView.gutterBackground) { + lineView.node.removeChild(lineView.gutterBackground); + lineView.gutterBackground = null; + } + if (lineView.line.gutterClass) { + var wrap = ensureLineWrapped(lineView); + lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, + ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(lineView.gutterBackground); + wrap.insertBefore(lineView.gutterBackground, lineView.text); + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap$1 = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px")); + gutterWrap.setAttribute("aria-hidden", "true"); + cm.display.input.setUneditable(gutterWrap); + wrap$1.insertBefore(gutterWrap, lineView.text); + if (lineView.line.gutterClass) + { gutterWrap.className += " " + lineView.line.gutterClass; } + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + { lineView.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineN), + "CodeMirror-linenumber CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); } + if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { + var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id]; + if (found) + { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); } + } } + } + } + + function updateLineWidgets(cm, lineView, dims) { + if (lineView.alignable) { lineView.alignable = null; } + var isWidget = classTest("CodeMirror-linewidget"); + for (var node = lineView.node.firstChild, next = (void 0); node; node = next) { + next = node.nextSibling; + if (isWidget.test(node.className)) { lineView.node.removeChild(node); } + } + insertLineWidgets(cm, lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) { lineView.bgClass = built.bgClass; } + if (built.textClass) { lineView.textClass = built.textClass; } + + updateLineClasses(cm, lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(cm, lineView, dims); + return lineView.node + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(cm, lineView, dims) { + insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } } + } + + function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { + if (!line.widgets) { return } + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget" + (widget.className ? " " + widget.className : "")); + if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); } + positionLineWidget(widget, node, lineView, dims); + cm.display.input.setUneditable(node); + if (allowAbove && widget.above) + { wrap.insertBefore(node, lineView.gutter || lineView.text); } + else + { wrap.appendChild(node); } + signalLater(widget, "redraw"); + } + } + + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; } + } + } + + function widgetHeight(widget) { + if (widget.height != null) { return widget.height } + var cm = widget.doc.cm; + if (!cm) { return 0 } + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) + { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; } + if (widget.noHScroll) + { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; } + removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.parentNode.offsetHeight + } + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") || + (n.parentNode == display.sizer && n != display.mover)) + { return true } + } + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight} + function paddingH(display) { + if (display.cachedPaddingH) { return display.cachedPaddingH } + var e = removeChildrenAndAdd(display.measure, elt("pre", "x", "CodeMirror-line-like")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; + if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; } + return data + } + + function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth } + function displayWidth(cm) { + return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth + } + function displayHeight(cm) { + return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && displayWidth(cm); + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) + { heights.push((cur.bottom + next.top) / 2 - rect.top); } + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) + { return {map: lineView.measure.map, cache: lineView.measure.cache} } + if (lineView.rest) { + for (var i = 0; i < lineView.rest.length; i++) + { if (lineView.rest[i] == line) + { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) + { if (lineNo(lineView.rest[i$1]) > lineN) + { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + } + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias) + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) + { return cm.display.view[findViewIndex(cm, lineN)] } + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) + { return ext } + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) { + view = null; + } else if (view && view.changes) { + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + cm.curOp.forceUpdate = true; + } + if (!view) + { view = updateExternalMeasurement(cm, line); } + + var info = mapFromLineView(view, line, lineN); + return { + line: line, view: view, rect: null, + map: info.map, cache: info.cache, before: info.before, + hasHeights: false + } + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) { ch = -1; } + var key = ch + (bias || ""), found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) + { prepared.rect = prepared.view.text.getBoundingClientRect(); } + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) { prepared.cache[key] = found; } + } + return {left: found.left, right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom} + } + + var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; + + function nodeAndOffsetInLineMap(map, ch, bias) { + var node, start, end, collapse, mStart, mEnd; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map.length; i += 3) { + mStart = map[i]; + mEnd = map[i + 1]; + if (ch < mStart) { + start = 0; end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) { collapse = "right"; } + } + if (start != null) { + node = map[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) + { collapse = bias; } + if (bias == "left" && start == 0) + { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) { + node = map[(i -= 3) + 2]; + collapse = "left"; + } } + if (bias == "right" && start == mEnd - mStart) + { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) { + node = map[(i += 3) + 2]; + collapse = "right"; + } } + break + } + } + return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd} + } + + function getUsefulRect(rects, bias) { + var rect = nullRect; + if (bias == "left") { for (var i = 0; i < rects.length; i++) { + if ((rect = rects[i]).left != rect.right) { break } + } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) { + if ((rect = rects[i$1]).left != rect.right) { break } + } } + return rect + } + + function measureCharInner(cm, prepared, ch, bias) { + var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); + var node = place.node, start = place.start, end = place.end, collapse = place.collapse; + + var rect; + if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. + for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; } + while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; } + if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) + { rect = node.parentNode.getBoundingClientRect(); } + else + { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); } + if (rect.left || rect.right || start == 0) { break } + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); } + } else { // If it is a widget, simply get the box for the whole widget. + if (start > 0) { collapse = bias = "right"; } + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) + { rect = rects[bias == "right" ? rects.length - 1 : 0]; } + else + { rect = node.getBoundingClientRect(); } + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) + { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; } + else + { rect = nullRect; } + } + + var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + var i = 0; + for (; i < heights.length - 1; i++) + { if (mid < heights[i]) { break } } + var top = i ? heights[i - 1] : 0, bot = heights[i]; + var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, bottom: bot}; + if (!rect.left && !rect.right) { result.bogus = true; } + if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } + + return result + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || + screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) + { return rect } + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return {left: rect.left * scaleX, right: rect.right * scaleX, + top: rect.top * scaleY, bottom: rect.bottom * scaleY} + } + + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { lineView.measure.caches[i] = {}; } } + } + } + + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) + { clearLineMeasurementCacheFor(cm.display.view[i]); } + } + + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; } + cm.display.lineNumChars = null; + } + + function pageScrollX() { + // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 + // which causes page_Offset and bounding client rects to use + // different reference viewports and invalidate our calculations. + if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) } + return window.pageXOffset || (document.documentElement || document.body).scrollLeft + } + function pageScrollY() { + if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) } + return window.pageYOffset || (document.documentElement || document.body).scrollTop + } + + function widgetTopHeight(lineObj) { + var height = 0; + if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) + { height += widgetHeight(lineObj.widgets[i]); } } } + return height + } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"./null (editor), "window", + // or "page". + function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { + if (!includeWidgets) { + var height = widgetTopHeight(lineObj); + rect.top += height; rect.bottom += height; + } + if (context == "line") { return rect } + if (!context) { context = "local"; } + var yOff = heightAtLine(lineObj); + if (context == "local") { yOff += paddingTop(cm.display); } + else { yOff -= cm.display.viewOffset; } + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"./null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") { return coords } + var left = coords.left, top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top} + } + + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) { lineObj = getLine(cm.doc, pos.line); } + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context) + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + // A cursor Pos(line, char, "before") is on the same visual line as `char - 1` + // and after `char - 1` in writing order of `char - 1` + // A cursor Pos(line, char, "after") is on the same visual line as `char` + // and before `char` in writing order of `char` + // Examples (upper-case letters are RTL, lower-case are LTR): + // Pos(0, 1, ...) + // before after + // ab a|b a|b + // aB a|B aB| + // Ab |Ab A|b + // AB B|A B|A + // Every position after the last character on a line is considered to stick + // to the last character on the line. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) { m.left = m.right; } else { m.right = m.left; } + return intoCoordSystem(cm, lineObj, m, context) + } + var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky; + if (ch >= lineObj.text.length) { + ch = lineObj.text.length; + sticky = "before"; + } else if (ch <= 0) { + ch = 0; + sticky = "after"; + } + if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") } + + function getBidi(ch, partPos, invert) { + var part = order[partPos], right = part.level == 1; + return get(invert ? ch - 1 : ch, right != invert) + } + var partPos = getBidiPartAt(order, ch, sticky); + var other = bidiOther; + var val = getBidi(ch, partPos, sticky == "before"); + if (other != null) { val.other = getBidi(ch, other, sticky != "before"); } + return val + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0; + pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; } + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return {left: left, right: left, top: top, bottom: top + lineObj.height} + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, sticky, outside, xRel) { + var pos = Pos(line, ch, sticky); + pos.xRel = xRel; + if (outside) { pos.outside = outside; } + return pos + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) } + var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineN > last) + { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) } + if (x < 0) { x = 0; } + + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0)); + if (!collapsed) { return found } + var rangeEnd = collapsed.find(1); + if (rangeEnd.line == lineN) { return rangeEnd } + lineObj = getLine(doc, lineN = rangeEnd.line); + } + } + + function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { + y -= widgetTopHeight(lineObj); + var end = lineObj.text.length; + var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0); + end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end); + return {begin: begin, end: end} + } + + function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; + return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop) + } + + // Returns true if the given side of a box is after the given + // coordinates, in top-to-bottom, left-to-right order. + function boxIsAfter(box, x, y, left) { + return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x + } + + function coordsCharInner(cm, lineObj, lineNo, x, y) { + // Move y into line-local coordinate space + y -= heightAtLine(lineObj); + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + // When directly calling `measureCharPrepared`, we have to adjust + // for the widgets at this line. + var widgetHeight = widgetTopHeight(lineObj); + var begin = 0, end = lineObj.text.length, ltr = true; + + var order = getOrder(lineObj, cm.doc.direction); + // If the line isn't plain left-to-right text, first figure out + // which bidi section the coordinates fall into. + if (order) { + var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart) + (cm, lineObj, lineNo, preparedMeasure, order, x, y); + ltr = part.level != 1; + // The awkward -1 offsets are needed because findFirst (called + // on these below) will treat its first bound as inclusive, + // second as exclusive, but we want to actually address the + // characters in the part's range + begin = ltr ? part.from : part.to - 1; + end = ltr ? part.to : part.from - 1; + } + + // A binary search to find the first character whose bounding box + // starts after the coordinates. If we run across any whose box wrap + // the coordinates, store that. + var chAround = null, boxAround = null; + var ch = findFirst(function (ch) { + var box = measureCharPrepared(cm, preparedMeasure, ch); + box.top += widgetHeight; box.bottom += widgetHeight; + if (!boxIsAfter(box, x, y, false)) { return false } + if (box.top <= y && box.left <= x) { + chAround = ch; + boxAround = box; + } + return true + }, begin, end); + + var baseX, sticky, outside = false; + // If a box around the coordinates was found, use that + if (boxAround) { + // Distinguish coordinates nearer to the left or right side of the box + var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr; + ch = chAround + (atStart ? 0 : 1); + sticky = atStart ? "after" : "before"; + baseX = atLeft ? boxAround.left : boxAround.right; + } else { + // (Adjust for extended bound, if necessary.) + if (!ltr && (ch == end || ch == begin)) { ch++; } + // To determine which side to associate with, get the box to the + // left of the character and compare it's vertical position to the + // coordinates + sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : + (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ? + "after" : "before"; + // Now get accurate coordinates for this place, in order to get a + // base X position + var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), "line", lineObj, preparedMeasure); + baseX = coords.left; + outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0; + } + + ch = skipExtendingChars(lineObj.text, ch, 1); + return PosWithInfo(lineNo, ch, sticky, outside, x - baseX) + } + + function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) { + // Bidi parts are sorted left-to-right, and in a non-line-wrapping + // situation, we can take this ordering to correspond to the visual + // ordering. This finds the first part whose end is after the given + // coordinates. + var index = findFirst(function (i) { + var part = order[i], ltr = part.level != 1; + return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? "before" : "after"), + "line", lineObj, preparedMeasure), x, y, true) + }, 0, order.length - 1); + var part = order[index]; + // If this isn't the first part, the part's start is also after + // the coordinates, and the coordinates aren't on the same line as + // that start, move one part back. + if (index > 0) { + var ltr = part.level != 1; + var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? "after" : "before"), + "line", lineObj, preparedMeasure); + if (boxIsAfter(start, x, y, true) && start.top > y) + { part = order[index - 1]; } + } + return part + } + + function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { + // In a wrapped line, rtl text on wrapping boundaries can do things + // that don't correspond to the ordering in our `order` array at + // all, so a binary search doesn't work, and we want to return a + // part that only spans one line so that the binary search in + // coordsCharInner is safe. As such, we first find the extent of the + // wrapped line, and then do a flat search in which we discard any + // spans that aren't on the line. + var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); + var begin = ref.begin; + var end = ref.end; + if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; } + var part = null, closestDist = null; + for (var i = 0; i < order.length; i++) { + var p = order[i]; + if (p.from >= end || p.to <= begin) { continue } + var ltr = p.level != 1; + var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; + // Weigh against spans ending before this, so that they are only + // picked if nothing ends after + var dist = endX < x ? x - endX + 1e9 : endX - x; + if (!part || closestDist > dist) { + part = p; + closestDist = dist; + } + } + if (!part) { part = order[order.length - 1]; } + // Clip the part to the wrapped line. + if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; } + if (part.to > end) { part = {from: part.from, to: end, level: part.level}; } + return part + } + + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) { return display.cachedTextHeight } + if (measureText == null) { + measureText = elt("pre", null, "CodeMirror-line-like"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) { display.cachedTextHeight = height; } + removeChildren(display.measure); + return height || 1 + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) { return display.cachedCharWidth } + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor], "CodeMirror-line-like"); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; + if (width > 2) { display.cachedCharWidth = width; } + return width || 10 + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + var id = cm.display.gutterSpecs[i].className; + left[id] = n.offsetLeft + n.clientLeft + gutterLeft; + width[id] = n.clientWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth} + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function (line) { + if (lineIsHidden(cm.doc, line)) { return 0 } + + var widgetsHeight = 0; + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; } + } } + + if (wrapping) + { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th } + else + { return widgetsHeight + th } + } + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function (line) { + var estHeight = est(line); + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + }); + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null } + + var x, y, space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX - space.left; y = e.clientY - space.top; } + catch (e$1) { return null } + var coords = coordsChar(cm, x, y), line; + if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) { return null } + n -= cm.display.viewFrom; + if (n < 0) { return null } + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) { return i } + } + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) { from = cm.doc.first; } + if (to == null) { to = cm.doc.first + cm.doc.size; } + if (!lendiff) { lendiff = 0; } + + var display = cm.display; + if (lendiff && to < display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers > from)) + { display.updateLineNumbers = from; } + + cm.curOp.viewChanged = true; + + if (from >= display.viewTo) { // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) + { resetView(cm); } + } else if (to <= display.viewFrom) { // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { // Bottom overlap + var cut$1 = viewCuttingPoint(cm, from, from, -1); + if (cut$1) { + display.view = display.view.slice(0, cut$1.index); + display.viewTo = cut$1.lineN; + } else { + resetView(cm); + } + } else { // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index) + .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) + .concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) + { ext.lineN += lendiff; } + else if (from < ext.lineN + ext.size) + { display.externalMeasured = null; } + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) + { display.externalMeasured = null; } + + if (line < display.viewFrom || line >= display.viewTo) { return } + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) { return } + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) { arr.push(type); } + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), diff, view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) + { return {index: index, lineN: newN} } + var n = cm.display.viewFrom; + for (var i = 0; i < index; i++) + { n += view[i].size; } + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) { return null } + diff = (n + view[index].size) - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) { return null } + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return {index: index, lineN: newN} + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) + { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); } + else if (display.viewFrom < from) + { display.view = display.view.slice(findViewIndex(cm, from)); } + display.viewFrom = from; + if (display.viewTo < to) + { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); } + else if (display.viewTo > to) + { display.view = display.view.slice(0, findViewIndex(cm, to)); } + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; } + } + return dirty + } + + function updateSelection(cm) { + cm.display.input.showSelection(cm.display.input.prepareSelection()); + } + + function prepareSelection(cm, primary) { + if ( primary === void 0 ) primary = true; + + var doc = cm.doc, result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + + var customCursor = cm.options.$customCursor; + if (customCursor) { primary = true; } + for (var i = 0; i < doc.sel.ranges.length; i++) { + if (!primary && i == doc.sel.primIndex) { continue } + var range = doc.sel.ranges[i]; + if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue } + var collapsed = range.empty(); + if (customCursor) { + var head = customCursor(cm, range); + if (head) { drawSelectionCursor(cm, head, curFragment); } + } else if (collapsed || cm.options.showCursorWhenSelecting) { + drawSelectionCursor(cm, range.head, curFragment); + } + if (!collapsed) + { drawSelectionRange(cm, range, selFragment); } + } + return result + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, head, output) { + var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); + + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + + if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) { + var charPos = charCoords(cm, head, "div", null, null); + var width = charPos.right - charPos.left; + cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + "px"; + } + + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + + function cmpCoords(a, b) { return a.top - b.top || a.left - b.left } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range, output) { + var display = cm.display, doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), leftSide = padding.left; + var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; + var docLTR = doc.direction == "ltr"; + + function add(left, top, width, bottom) { + if (top < 0) { top = 0; } + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px"))); + } + + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias) + } + + function wrapX(pos, dir, side) { + var extent = wrappedLineExtentChar(cm, lineObj, null, pos); + var prop = (dir == "ltr") == (side == "after") ? "left" : "right"; + var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop] + } + + var order = getOrder(lineObj, doc.direction); + iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) { + var ltr = dir == "ltr"; + var fromPos = coords(from, ltr ? "left" : "right"); + var toPos = coords(to - 1, ltr ? "right" : "left"); + + var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen; + var first = i == 0, last = !order || i == order.length - 1; + if (toPos.top - fromPos.top <= 3) { // Single line + var openLeft = (docLTR ? openStart : openEnd) && first; + var openRight = (docLTR ? openEnd : openStart) && last; + var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; + var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; + add(left, fromPos.top, right - left, fromPos.bottom); + } else { // Multiple lines + var topLeft, topRight, botLeft, botRight; + if (ltr) { + topLeft = docLTR && openStart && first ? leftSide : fromPos.left; + topRight = docLTR ? rightSide : wrapX(from, dir, "before"); + botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); + botRight = docLTR && openEnd && last ? rightSide : toPos.right; + } else { + topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); + topRight = !docLTR && openStart && first ? rightSide : fromPos.right; + botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; + botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); + } + add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); + if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); } + add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); + } + + if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; } + if (cmpCoords(toPos, start) < 0) { start = toPos; } + if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; } + if (cmpCoords(toPos, end) < 0) { end = toPos; } + }); + return {start: start, end: end} + } + + var sFrom = range.from(), sTo = range.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) + { add(leftSide, leftEnd.bottom, null, rightStart.top); } + } + + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) { return } + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) + { display.blinker = setInterval(function () { + if (!cm.hasFocus()) { onBlur(cm); } + display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; + }, cm.options.cursorBlinkRate); } + else if (cm.options.cursorBlinkRate < 0) + { display.cursorDiv.style.visibility = "hidden"; } + } + + function ensureFocus(cm) { + if (!cm.hasFocus()) { + cm.display.input.focus(); + if (!cm.state.focused) { onFocus(cm); } + } + } + + function delayBlurEvent(cm) { + cm.state.delayingBlurEvent = true; + setTimeout(function () { if (cm.state.delayingBlurEvent) { + cm.state.delayingBlurEvent = false; + if (cm.state.focused) { onBlur(cm); } + } }, 100); + } + + function onFocus(cm, e) { + if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; } + + if (cm.options.readOnly == "nocursor") { return } + if (!cm.state.focused) { + signal(cm, "focus", cm, e); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // This test prevents this from firing when a context + // menu is closed (since the input reset would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + cm.display.input.reset(); + if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730 + } + cm.display.input.receivedFocus(); + } + restartBlink(cm); + } + function onBlur(cm, e) { + if (cm.state.delayingBlurEvent) { return } + + if (cm.state.focused) { + signal(cm, "blur", cm, e); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150); + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top); + var oldHeight = display.lineDiv.getBoundingClientRect().top; + var mustScroll = 0; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], wrapping = cm.options.lineWrapping; + var height = (void 0), width = 0; + if (cur.hidden) { continue } + oldHeight += cur.line.height; + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + // Check that lines don't extend past the right of the current + // editor width + if (!wrapping && cur.text.firstChild) + { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; } + } + var diff = cur.line.height - height; + if (diff > .005 || diff < -.005) { + if (oldHeight < viewTop) { mustScroll -= diff; } + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) { for (var j = 0; j < cur.rest.length; j++) + { updateWidgetHeight(cur.rest[j]); } } + } + if (width > cm.display.sizerWidth) { + var chWidth = Math.ceil(width / charWidth(cm.display)); + if (chWidth > cm.display.maxLineLength) { + cm.display.maxLineLength = chWidth; + cm.display.maxLine = cur.line; + cm.display.maxLineChanged = true; + } + } + } + if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) { + var w = line.widgets[i], parent = w.node.parentNode; + if (parent) { w.height = parent.offsetHeight; } + } } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + + var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) { + from = ensureFrom; + to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); + } else if (Math.min(ensureTo, doc.lastLine()) >= to) { + from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); + to = ensureTo; + } + } + return {from: from, to: Math.max(to, from + 1)} + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, rect) { + if (signalDOMEvent(cm, "scrollCursorIntoView")) { return } + + var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; + if (rect.top + box.top < 0) { doScroll = true; } + else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; } + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;")); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) { margin = 0; } + var rect; + if (!cm.options.lineWrapping && pos == end) { + // Set pos and end to the cursor positions around the character pos sticks to + // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch + // If pos == Pos(_, 0, "before"), pos and end are unchanged + end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; + pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; + } + for (var limit = 0; limit < 5; limit++) { + var changed = false; + var coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + rect = {left: Math.min(coords.left, endCoords.left), + top: Math.min(coords.top, endCoords.top) - margin, + right: Math.max(coords.left, endCoords.left), + bottom: Math.max(coords.bottom, endCoords.bottom) + margin}; + var scrollPos = calculateScrollPos(cm, rect); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; } + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; } + } + if (!changed) { break } + } + return rect + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, rect) { + var scrollPos = calculateScrollPos(cm, rect); + if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); } + if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); } + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, rect) { + var display = cm.display, snapMargin = textHeight(cm.display); + if (rect.top < 0) { rect.top = 0; } + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = displayHeight(cm), result = {}; + if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; } + var docBottom = cm.doc.height + paddingVert(display); + var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin; + if (rect.top < screentop) { + result.scrollTop = atTop ? 0 : rect.top; + } else if (rect.bottom > screentop + screen) { + var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen); + if (newTop != screentop) { result.scrollTop = newTop; } + } + + var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth; + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace; + var screenw = displayWidth(cm) - display.gutters.offsetWidth; + var tooWide = rect.right - rect.left > screenw; + if (tooWide) { rect.right = rect.left + screenw; } + if (rect.left < 10) + { result.scrollLeft = 0; } + else if (rect.left < screenleft) + { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); } + else if (rect.right > screenw + screenleft - 3) + { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; } + return result + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollTop(cm, top) { + if (top == null) { return } + resolveScrollToPos(cm); + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(); + cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin}; + } + + function scrollToCoords(cm, x, y) { + if (x != null || y != null) { resolveScrollToPos(cm); } + if (x != null) { cm.curOp.scrollLeft = x; } + if (y != null) { cm.curOp.scrollTop = y; } + } + + function scrollToRange(cm, range) { + resolveScrollToPos(cm); + cm.curOp.scrollToPos = range; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range = cm.curOp.scrollToPos; + if (range) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to); + scrollToCoordsRange(cm, from, to, range.margin); + } + } + + function scrollToCoordsRange(cm, from, to, margin) { + var sPos = calculateScrollPos(cm, { + left: Math.min(from.left, to.left), + top: Math.min(from.top, to.top) - margin, + right: Math.max(from.right, to.right), + bottom: Math.max(from.bottom, to.bottom) + margin + }); + scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); + } + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function updateScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) { return } + if (!gecko) { updateDisplaySimple(cm, {top: val}); } + setScrollTop(cm, val, true); + if (gecko) { updateDisplaySimple(cm); } + startWorker(cm, 100); + } + + function setScrollTop(cm, val, forceScroll) { + val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val)); + if (cm.display.scroller.scrollTop == val && !forceScroll) { return } + cm.doc.scrollTop = val; + cm.display.scrollbars.setScrollTop(val); + if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; } + } + + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller, forceScroll) { + val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth)); + if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return } + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; } + cm.display.scrollbars.setScrollLeft(val); + } + + // SCROLLBARS + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var d = cm.display, gutterW = d.gutters.offsetWidth; + var docH = Math.round(cm.doc.height + paddingVert(cm.display)); + return { + clientHeight: d.scroller.clientHeight, + viewHeight: d.wrapper.clientHeight, + scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth, + viewWidth: d.wrapper.clientWidth, + barLeft: cm.options.fixedGutter ? gutterW : 0, + docHeight: docH, + scrollHeight: docH + scrollGap(cm) + d.barHeight, + nativeBarWidth: d.nativeBarWidth, + gutterWidth: gutterW + } + } + + var NativeScrollbars = function(place, scroll, cm) { + this.cm = cm; + var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + vert.tabIndex = horiz.tabIndex = -1; + place(vert); place(horiz); + + on(vert, "scroll", function () { + if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); } + }); + on(horiz, "scroll", function () { + if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); } + }); + + this.checkedZeroWidth = false; + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; } + }; + + NativeScrollbars.prototype.update = function (measure) { + var needsH = measure.scrollWidth > measure.clientWidth + 1; + var needsV = measure.scrollHeight > measure.clientHeight + 1; + var sWidth = measure.nativeBarWidth; + + if (needsV) { + this.vert.style.display = "block"; + this.vert.style.bottom = needsH ? sWidth + "px" : "0"; + var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); + // A bug in IE8 can cause this value to be negative, so guard it. + this.vert.firstChild.style.height = + Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; + } else { + this.vert.scrollTop = 0; + this.vert.style.display = ""; + this.vert.firstChild.style.height = "0"; + } + + if (needsH) { + this.horiz.style.display = "block"; + this.horiz.style.right = needsV ? sWidth + "px" : "0"; + this.horiz.style.left = measure.barLeft + "px"; + var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); + this.horiz.firstChild.style.width = + Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; + } else { + this.horiz.style.display = ""; + this.horiz.firstChild.style.width = "0"; + } + + if (!this.checkedZeroWidth && measure.clientHeight > 0) { + if (sWidth == 0) { this.zeroWidthHack(); } + this.checkedZeroWidth = true; + } + + return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0} + }; + + NativeScrollbars.prototype.setScrollLeft = function (pos) { + if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; } + if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); } + }; + + NativeScrollbars.prototype.setScrollTop = function (pos) { + if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; } + if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); } + }; + + NativeScrollbars.prototype.zeroWidthHack = function () { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + this.horiz.style.height = this.vert.style.width = w; + this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; + this.disableHoriz = new Delayed; + this.disableVert = new Delayed; + }; + + NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { + bar.style.pointerEvents = "auto"; + function maybeDisable() { + // To find out whether the scrollbar is still visible, we + // check whether the element under the pixel in the bottom + // right corner of the scrollbar box is the scrollbar box + // itself (when the bar is still visible) or its filler child + // (when the bar is hidden). If it is still visible, we keep + // it enabled, if it's hidden, we disable pointer events. + var box = bar.getBoundingClientRect(); + var elt = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) + : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); + if (elt != bar) { bar.style.pointerEvents = "none"; } + else { delay.set(1000, maybeDisable); } + } + delay.set(1000, maybeDisable); + }; + + NativeScrollbars.prototype.clear = function () { + var parent = this.horiz.parentNode; + parent.removeChild(this.horiz); + parent.removeChild(this.vert); + }; + + var NullScrollbars = function () {}; + + NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} }; + NullScrollbars.prototype.setScrollLeft = function () {}; + NullScrollbars.prototype.setScrollTop = function () {}; + NullScrollbars.prototype.clear = function () {}; + + function updateScrollbars(cm, measure) { + if (!measure) { measure = measureForScrollbars(cm); } + var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight; + updateScrollbarsInner(cm, measure); + for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { + if (startWidth != cm.display.barWidth && cm.options.lineWrapping) + { updateHeightsInViewport(cm); } + updateScrollbarsInner(cm, measureForScrollbars(cm)); + startWidth = cm.display.barWidth; startHeight = cm.display.barHeight; + } + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbarsInner(cm, measure) { + var d = cm.display; + var sizes = d.scrollbars.update(measure); + + d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; + d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; + d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; + + if (sizes.right && sizes.bottom) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = sizes.bottom + "px"; + d.scrollbarFiller.style.width = sizes.right + "px"; + } else { d.scrollbarFiller.style.display = ""; } + if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sizes.bottom + "px"; + d.gutterFiller.style.width = measure.gutterWidth + "px"; + } else { d.gutterFiller.style.display = ""; } + } + + var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars}; + + function initScrollbars(cm) { + if (cm.display.scrollbars) { + cm.display.scrollbars.clear(); + if (cm.display.scrollbars.addClass) + { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { + cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); + // Prevent clicks in the scrollbars from killing focus + on(node, "mousedown", function () { + if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); } + }); + node.setAttribute("cm-not-content", "true"); + }, function (pos, axis) { + if (axis == "horizontal") { setScrollLeft(cm, pos); } + else { updateScrollTop(cm, pos); } + }, cm); + if (cm.display.scrollbars.addClass) + { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, // Used to detect need to update scrollbar + forceUpdate: false, // Used to force a redraw + updateInput: 0, // Whether to reset the input textarea + typing: false, // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, // Accumulated changes, for firing change events + cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already + selectionChanged: false, // Whether the selection needs to be redrawn + updateMaxLine: false, // Set when the widest line needs to be determined anew + scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, // Used to scroll to a specific position + focus: false, + id: ++nextOpId, // Unique ID + markArrays: null // Used by addMarkedSpan + }; + pushOperation(cm.curOp); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp; + if (op) { finishOperation(op, function (group) { + for (var i = 0; i < group.ops.length; i++) + { group.ops[i].cm.curOp = null; } + endOperations(group); + }); } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) // Read DOM + { endOperation_R1(ops[i]); } + for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe) + { endOperation_W1(ops[i$1]); } + for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM + { endOperation_R2(ops[i$2]); } + for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe) + { endOperation_W2(ops[i$3]); } + for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM + { endOperation_finish(ops[i$4]); } + } + + function endOperation_R1(op) { + var cm = op.cm, display = cm.display; + maybeClipScrollbars(cm); + if (op.updateMaxLine) { findMaxLine(cm); } + + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || + op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || + op.scrollToPos.to.line >= display.viewTo) || + display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && + new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); + } + + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + + function endOperation_R2(op) { + var cm = op.cm, display = cm.display; + if (op.updatedDisplay) { updateHeightsInViewport(cm); } + + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + cm.display.sizerWidth = op.adjustWidthTo; + op.barMeasure.scrollWidth = + Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); + } + + if (op.updatedDisplay || op.selectionChanged) + { op.preparedSelection = display.input.prepareSelection(); } + } + + function endOperation_W2(op) { + var cm = op.cm; + + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) + { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); } + cm.display.maxLineChanged = false; + } + + var takeFocus = op.focus && op.focus == activeElt(); + if (op.preparedSelection) + { cm.display.input.showSelection(op.preparedSelection, takeFocus); } + if (op.updatedDisplay || op.startHeight != cm.doc.height) + { updateScrollbars(cm, op.barMeasure); } + if (op.updatedDisplay) + { setDocumentHeight(cm, op.barMeasure); } + + if (op.selectionChanged) { restartBlink(cm); } + + if (cm.state.focused && op.updateInput) + { cm.display.input.reset(op.typing); } + if (takeFocus) { ensureFocus(op.cm); } + } + + function endOperation_finish(op) { + var cm = op.cm, display = cm.display, doc = cm.doc; + + if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); } + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) + { display.wheelStartX = display.wheelStartY = null; } + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); } + + if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), + clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + maybeScrollWindow(cm, rect); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) { for (var i = 0; i < hidden.length; ++i) + { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } } + if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1) + { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } } + + if (display.wrapper.offsetHeight) + { doc.scrollTop = cm.display.scroller.scrollTop; } + + // Fire change events, and delayed event handlers + if (op.changeObjs) + { signal(cm, "changes", cm, op.changeObjs); } + if (op.update) + { op.update.finish(); } + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) { return f() } + startOperation(cm); + try { return f() } + finally { endOperation(cm); } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function() { + if (cm.curOp) { return f.apply(cm, arguments) } + startOperation(cm); + try { return f.apply(cm, arguments) } + finally { endOperation(cm); } + } + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function() { + if (this.curOp) { return f.apply(this, arguments) } + startOperation(this); + try { return f.apply(this, arguments) } + finally { endOperation(this); } + } + } + function docMethodOp(f) { + return function() { + var cm = this.cm; + if (!cm || cm.curOp) { return f.apply(this, arguments) } + startOperation(cm); + try { return f.apply(this, arguments) } + finally { endOperation(cm); } + } + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.highlightFrontier < cm.display.viewTo) + { cm.state.highlight.set(time, bind(highlightWorker, cm)); } + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.highlightFrontier >= cm.display.viewTo) { return } + var end = +new Date + cm.options.workTime; + var context = getContextBefore(cm, doc.highlightFrontier); + var changedLines = []; + + doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { + if (context.line >= cm.display.viewFrom) { // Visible + var oldStyles = line.styles; + var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; + var highlighted = highlightLine(cm, line, context, true); + if (resetState) { context.state = resetState; } + line.styles = highlighted.styles; + var oldCls = line.styleClasses, newCls = highlighted.classes; + if (newCls) { line.styleClasses = newCls; } + else if (oldCls) { line.styleClasses = null; } + var ischange = !oldStyles || oldStyles.length != line.styles.length || + oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; } + if (ischange) { changedLines.push(context.line); } + line.stateAfter = context.save(); + context.nextLine(); + } else { + if (line.text.length <= cm.options.maxHighlightLength) + { processLine(cm, line.text, context); } + line.stateAfter = context.line % 5 == 0 ? context.save() : null; + context.nextLine(); + } + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true + } + }); + doc.highlightFrontier = context.line; + doc.modeFrontier = Math.max(doc.modeFrontier, context.line); + if (changedLines.length) { runInOp(cm, function () { + for (var i = 0; i < changedLines.length; i++) + { regLineChange(cm, changedLines[i], "text"); } + }); } + } + + // DISPLAY DRAWING + + var DisplayUpdate = function(cm, viewport, force) { + var display = cm.display; + + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.wrapperWidth = display.wrapper.clientWidth; + this.oldDisplayWidth = displayWidth(cm); + this.force = force; + this.dims = getDimensions(cm); + this.events = []; + }; + + DisplayUpdate.prototype.signal = function (emitter, type) { + if (hasHandler(emitter, type)) + { this.events.push(arguments); } + }; + DisplayUpdate.prototype.finish = function () { + for (var i = 0; i < this.events.length; i++) + { signal.apply(null, this.events[i]); } + }; + + function maybeClipScrollbars(cm) { + var display = cm.display; + if (!display.scrollbarsClipped && display.scroller.offsetWidth) { + display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; + display.heightForcer.style.height = scrollGap(cm) + "px"; + display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; + display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; + display.scrollbarsClipped = true; + } + } + + function selectionSnapshot(cm) { + if (cm.hasFocus()) { return null } + var active = activeElt(); + if (!active || !contains(cm.display.lineDiv, active)) { return null } + var result = {activeElt: active}; + if (window.getSelection) { + var sel = window.getSelection(); + if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { + result.anchorNode = sel.anchorNode; + result.anchorOffset = sel.anchorOffset; + result.focusNode = sel.focusNode; + result.focusOffset = sel.focusOffset; + } + } + return result + } + + function restoreSelection(snapshot) { + if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } + snapshot.activeElt.focus(); + if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) && + snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + var sel = window.getSelection(), range = document.createRange(); + range.setEnd(snapshot.anchorNode, snapshot.anchorOffset); + range.collapse(false); + sel.removeAllRanges(); + sel.addRange(range); + sel.extend(snapshot.focusNode, snapshot.focusOffset); + } + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, doc = cm.doc; + + if (update.editorIsHidden) { + resetView(cm); + return false + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && + update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && + display.renderedView == display.view && countDirtyView(cm) == 0) + { return false } + + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); } + if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); } + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + + var different = from != display.viewFrom || to != display.viewTo || + display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; + adjustView(cm, from, to); + + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) + { return false } + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var selSnapshot = selectionSnapshot(cm); + if (toUpdate > 4) { display.lineDiv.style.display = "none"; } + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) { display.lineDiv.style.display = ""; } + display.renderedView = display.view; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + restoreSelection(selSnapshot); + + // Prevent selection and cursors from interfering with the scroll + // width and height. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + display.gutters.style.height = display.sizer.style.minHeight = 0; + + if (different) { + display.lastWrapHeight = update.wrapperHeight; + display.lastWrapWidth = update.wrapperWidth; + startWorker(cm, 400); + } + + display.updateLineNumbers = null; + + return true + } + + function postUpdateDisplay(cm, update) { + var viewport = update.viewport; + + for (var first = true;; first = false) { + if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) + { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; } + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) + { break } + } else if (first) { + update.visible = visibleLines(cm.display, cm.doc, viewport); + } + if (!updateDisplayIfNeeded(cm, update)) { break } + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.force = false; + } + + update.signal(cm, "update", cm); + if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { + update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo; + } + } + + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.finish(); + } + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) + { node.style.display = "none"; } + else + { node.parentNode.removeChild(node); } + return next + } + + var view = display.view, lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { // Already drawn + while (cur != lineView.node) { cur = rm(cur); } + var updateNumber = lineNumbers && updateNumbersFrom != null && + updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; } + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) { cur = rm(cur); } + } + + function updateGutterSpace(display) { + var width = display.gutters.offsetWidth; + display.sizer.style.marginLeft = width + "px"; + // Send an event to consumers responding to changes in gutter width. + signalLater(display, "gutterChanged", display); + } + + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = measure.docHeight + "px"; + cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px"; + } + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return } + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, left = comp + "px"; + for (var i = 0; i < view.length; i++) { if (!view[i].hidden) { + if (cm.options.fixedGutter) { + if (view[i].gutter) + { view[i].gutter.style.left = left; } + if (view[i].gutterBackground) + { view[i].gutterBackground.style.left = left; } + } + var align = view[i].alignable; + if (align) { for (var j = 0; j < align.length; j++) + { align[j].style.left = left; } } + } } + if (cm.options.fixedGutter) + { display.gutters.style.left = (comp + gutterW) + "px"; } + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) { return false } + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm.display); + return true + } + return false + } + + function getGutters(gutters, lineNumbers) { + var result = [], sawLineNumbers = false; + for (var i = 0; i < gutters.length; i++) { + var name = gutters[i], style = null; + if (typeof name != "string") { style = name.style; name = name.className; } + if (name == "CodeMirror-linenumbers") { + if (!lineNumbers) { continue } + else { sawLineNumbers = true; } + } + result.push({className: name, style: style}); + } + if (lineNumbers && !sawLineNumbers) { result.push({className: "CodeMirror-linenumbers", style: null}); } + return result + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function renderGutters(display) { + var gutters = display.gutters, specs = display.gutterSpecs; + removeChildren(gutters); + display.lineGutter = null; + for (var i = 0; i < specs.length; ++i) { + var ref = specs[i]; + var className = ref.className; + var style = ref.style; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); + if (style) { gElt.style.cssText = style; } + if (className == "CodeMirror-linenumbers") { + display.lineGutter = gElt; + gElt.style.width = (display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = specs.length ? "" : "none"; + updateGutterSpace(display); + } + + function updateGutters(cm) { + renderGutters(cm.display); + regChange(cm); + alignHorizontally(cm); + } + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc, input, options) { + var d = this; + this.input = input; + + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + d.scrollbarFiller.setAttribute("cm-not-content", "true"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + d.gutterFiller.setAttribute("cm-not-content", "true"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = eltP("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], + null, "position: relative; outline: none"); + var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [lines], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + d.sizerWidth = null; + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // This attribute is respected by automatic translation systems such as Google Translate, + // and may also be respected by tools used by human translators. + d.wrapper.setAttribute('translate', 'no'); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; } + + if (place) { + if (place.appendChild) { place.appendChild(d.wrapper); } + else { place(d.wrapper); } + } + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + d.reportedViewFrom = d.reportedViewTo = doc.first; + // Information about the rendered lines. + d.view = []; + d.renderedView = null; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastWrapHeight = d.lastWrapWidth = 0; + d.updateLineNumbers = null; + + d.nativeBarWidth = d.barHeight = d.barWidth = 0; + d.scrollbarsClipped = false; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + + d.activeTouch = null; + + d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); + renderGutters(d); + + input.init(d); + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) { wheelPixelsPerUnit = -.53; } + else if (gecko) { wheelPixelsPerUnit = 15; } + else if (chrome) { wheelPixelsPerUnit = -.7; } + else if (safari) { wheelPixelsPerUnit = -1/3; } + + function wheelEventDelta(e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; } + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; } + else if (dy == null) { dy = e.wheelDelta; } + return {x: dx, y: dy} + } + function wheelEventPixels(e) { + var delta = wheelEventDelta(e); + delta.x *= wheelPixelsPerUnit; + delta.y *= wheelPixelsPerUnit; + return delta + } + + function onScrollWheel(cm, e) { + var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; + var pixelsPerUnit = wheelPixelsPerUnit; + if (e.deltaMode === 0) { + dx = e.deltaX; + dy = e.deltaY; + pixelsPerUnit = 1; + } + + var display = cm.display, scroll = display.scroller; + // Quit if there's nothing to scroll here + var canScrollX = scroll.scrollWidth > scroll.clientWidth; + var canScrollY = scroll.scrollHeight > scroll.clientHeight; + if (!(dx && canScrollX || dy && canScrollY)) { return } + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && pixelsPerUnit != null) { + if (dy && canScrollY) + { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); } + setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit)); + // Only prevent default scrolling if vertical scrolling is + // actually possible. Otherwise, it causes vertical scroll + // jitter on OSX trackpads when deltaX is small and deltaY + // is large (issue #3579) + if (!dy || (dy && canScrollY)) + { e_preventDefault(e); } + display.wheelStartX = null; // Abort measurement, if in progress + return + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && pixelsPerUnit != null) { + var pixels = dy * pixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) { top = Math.max(0, top + pixels - 50); } + else { bot = Math.min(cm.doc.height, bot + pixels + 50); } + updateDisplaySimple(cm, {top: top, bottom: bot}); + } + + if (wheelSamples < 20 && e.deltaMode !== 0) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function () { + if (display.wheelStartX == null) { return } + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) { return } + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + var Selection = function(ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + }; + + Selection.prototype.primary = function () { return this.ranges[this.primIndex] }; + + Selection.prototype.equals = function (other) { + if (other == this) { return true } + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false } + for (var i = 0; i < this.ranges.length; i++) { + var here = this.ranges[i], there = other.ranges[i]; + if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false } + } + return true + }; + + Selection.prototype.deepCopy = function () { + var out = []; + for (var i = 0; i < this.ranges.length; i++) + { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); } + return new Selection(out, this.primIndex) + }; + + Selection.prototype.somethingSelected = function () { + for (var i = 0; i < this.ranges.length; i++) + { if (!this.ranges[i].empty()) { return true } } + return false + }; + + Selection.prototype.contains = function (pos, end) { + if (!end) { end = pos; } + for (var i = 0; i < this.ranges.length; i++) { + var range = this.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) + { return i } + } + return -1 + }; + + var Range = function(anchor, head) { + this.anchor = anchor; this.head = head; + }; + + Range.prototype.from = function () { return minPos(this.anchor, this.head) }; + Range.prototype.to = function () { return maxPos(this.anchor, this.head) }; + Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(cm, ranges, primIndex) { + var mayTouch = cm && cm.options.selectionsMayTouch; + var prim = ranges[primIndex]; + ranges.sort(function (a, b) { return cmp(a.from(), b.from()); }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], prev = ranges[i - 1]; + var diff = cmp(prev.to(), cur.from()); + if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { + var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) { --primIndex; } + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex) + } + + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0) + } + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + function changeEnd(change) { + if (!change.text) { return change.to } + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)) + } + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) { return pos } + if (cmp(pos, change.to) <= 0) { return changeEnd(change) } + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; } + return Pos(line, ch) + } + + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), + adjustForChange(range.head, change))); + } + return normalizeSelection(doc.cm, out, doc.sel.primIndex) + } + + function offsetPos(pos, old, nw) { + if (pos.line == old.line) + { return Pos(nw.line, pos.ch - old.ch + nw.ch) } + else + { return Pos(nw.line + (pos.line - old.line), pos.ch) } + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex) + } + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + + function resetModeState(cm) { + cm.doc.iter(function (line) { + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + }); + cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) { regChange(cm); } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && + (!doc.cm || doc.cm.options.wholeLineUpdateBefore) + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight); + signalLater(line, "change", line, change); + } + function linesFor(start, end) { + var result = []; + for (var i = start; i < end; ++i) + { result.push(new Line(text[i], spansFor(i), estimateHeight)); } + return result + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // Adjust the line structure + if (change.full) { + doc.insert(0, linesFor(0, text.length)); + doc.remove(text.length, doc.size - text.length); + } else if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = linesFor(0, text.length - 1); + update(lastLine, lastLine.text, lastSpans); + if (nlines) { doc.remove(from.line, nlines); } + if (added.length) { doc.insert(from.line, added); } + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + var added$1 = linesFor(1, text.length - 1); + added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added$1); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + var added$2 = linesFor(1, text.length - 1); + if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); } + doc.insert(from.line + 1, added$2); + } + + signalLater(doc, "change", doc, change); + } + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) { continue } + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) { continue } + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) { throw new Error("This document is already in use.") } + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + setDirectionClass(cm); + cm.options.direction = doc.direction; + if (!cm.options.lineWrapping) { findMaxLine(cm); } + cm.options.mode = doc.modeOption; + regChange(cm); + } + + function setDirectionClass(cm) { + (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); + } + + function directionChanged(cm) { + runInOp(cm, function () { + setDirectionClass(cm); + regChange(cm); + }); + } + + function History(prev) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; this.undone = []; + this.undoDepth = prev ? prev.undoDepth : Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true); + return histChange + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) { array.pop(); } + else { break } + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done) + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done) + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done) + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, or are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur; + var last; + + if ((hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) || + change.origin.charAt(0) == "*")) && + (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) + { pushSelectionToHistory(doc.sel, hist.done); } + cur = {changes: [historyChangeFromChange(doc, change)], + generation: hist.generation}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) { hist.done.shift(); } + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + + if (!last) { signal(doc, "historyAdded"); } + } + + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || + ch == "+" && + prev.ranges.length == sel.ranges.length && + prev.somethingSelected() == sel.somethingSelected() && + new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500) + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || + (origin && hist.lastSelOrigin == origin && + (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || + selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) + { hist.done[hist.done.length - 1] = sel; } + else + { pushSelectionToHistory(sel, hist.done); } + + hist.lastSelTime = +new Date; + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) + { clearSelectionEvents(hist.undone); } + } + + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) + { dest.push(sel); } + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { + if (line.markedSpans) + { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; } + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) { return null } + var out; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } } + else if (out) { out.push(spans[i]); } + } + return !out ? spans : out.length ? out : null + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) { return null } + var nw = []; + for (var i = 0; i < change.text.length; ++i) + { nw.push(removeClearedSpans(found[i])); } + return nw + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) { return stretched } + if (!stretched) { return old } + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + { if (oldCur[k].marker == span.marker) { continue spans } } + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + var copy = []; + for (var i = 0; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue + } + var changes = event.changes, newChanges = []; + copy.push({changes: newChanges}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m = (void 0); + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } } } + } + } + return copy + } + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(range, head, other, extend) { + if (extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != (cmp(other, anchor) < 0)) { + anchor = head; + head = other; + } else if (posBefore != (cmp(head, other) < 0)) { + head = other; + } + } + return new Range(anchor, head) + } else { + return new Range(other || head, head) + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options, extend) { + if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); } + setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + var out = []; + var extend = doc.cm && (doc.cm.display.shift || doc.extend); + for (var i = 0; i < doc.sel.ranges.length; i++) + { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); } + var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel, options) { + var obj = { + ranges: sel.ranges, + update: function(ranges) { + this.ranges = []; + for (var i = 0; i < ranges.length; i++) + { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), + clipPos(doc, ranges[i].head)); } + }, + origin: options && options.origin + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); } + if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) } + else { return sel } + } + + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) + { sel = filterSelectionChange(doc, sel, options); } + + var bias = options && options.bias || + (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + + if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption("readOnly") != "nocursor") + { ensureCursorVisible(doc.cm); } + } + + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) { return } + + doc.sel = sel; + + if (doc.cm) { + doc.cm.curOp.updateInput = 1; + doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) { out = sel.ranges.slice(0, i); } + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel + } + + function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { + var line = getLine(doc, pos.line); + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + + // Determine if we should prevent the cursor being placed to the left/right of an atomic marker + // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it + // is with selectLeft/Right + var preventCursorLeft = ("selectLeft" in m) ? !m.selectLeft : m.inclusiveLeft; + var preventCursorRight = ("selectRight" in m) ? !m.selectRight : m.inclusiveRight; + + if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && + (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) { break } + else {--i; continue} + } + } + if (!m.atomic) { continue } + + if (oldPos) { + var near = m.find(dir < 0 ? 1 : -1), diff = (void 0); + if (dir < 0 ? preventCursorRight : preventCursorLeft) + { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); } + if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) + { return skipAtomicInner(doc, near, pos, dir, mayClear) } + } + + var far = m.find(dir < 0 ? -1 : 1); + if (dir < 0 ? preventCursorLeft : preventCursorRight) + { far = movePos(doc, far, dir, far.line == pos.line ? line : null); } + return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null + } + } } + return pos + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, oldPos, bias, mayClear) { + var dir = bias || 1; + var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || + skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); + if (!found) { + doc.cantEdit = true; + return Pos(doc.first, 0) + } + return found + } + + function movePos(doc, pos, dir, line) { + if (dir < 0 && pos.ch == 0) { + if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) } + else { return null } + } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { + if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) } + else { return null } + } else { + return new Pos(pos.line, pos.ch + dir) + } + } + + function selectAll(cm) { + cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); + } + + // UPDATING + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function () { return obj.canceled = true; } + }; + if (update) { obj.update = function (from, to, text, origin) { + if (from) { obj.from = clipPos(doc, from); } + if (to) { obj.to = clipPos(doc, to); } + if (text) { obj.text = text; } + if (origin !== undefined) { obj.origin = origin; } + }; } + signal(doc, "beforeChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); } + + if (obj.canceled) { + if (doc.cm) { doc.cm.curOp.updateInput = 2; } + return null + } + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin} + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) } + if (doc.cm.state.suppressEdits) { return } + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) { return } + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) + { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); } + } else { + makeChangeInner(doc, change); + } + } + + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return } + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + var suppress = doc.cm && doc.cm.state.suppressEdits; + if (suppress && !allowSelectionOnly) { return } + + var hist = doc.history, event, selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + var i = 0; + for (; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) + { break } + } + if (i == source.length) { return } + hist.lastOrigin = hist.lastSelOrigin = null; + + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, {clearRedo: false}); + return + } + selAfter = event; + } else if (suppress) { + source.push(event); + return + } else { break } + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({changes: antiChanges, generation: hist.generation}); + hist.generation = event.generation || ++hist.maxGeneration; + + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + + var loop = function ( i ) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return {} + } + + antiChanges.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); } + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + }; + + for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) { + var returned = loop( i$1 ); + + if ( returned ) return returned.v; + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) { return } + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range( + Pos(range.anchor.line + distance, range.anchor.ch), + Pos(range.head.line + distance, range.head.ch) + ); }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) + { regLineChange(doc.cm, l, "gutter"); } + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) } + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return + } + if (change.from.line > doc.lastLine()) { return } + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) { selAfter = computeSelAfterChange(doc, change); } + if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); } + else { updateDoc(doc, change, spans); } + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + + if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0))) + { doc.cantEdit = false; } + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function (line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true + } + }); + } + + if (doc.sel.contains(change.from, change.to) > -1) + { signalCursorActivity(cm); } + + updateDoc(doc, change, spans, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function (line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; } + } + + retreatFrontier(doc, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (change.full) + { regChange(cm); } + else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) + { regLineChange(cm, from.line, "text"); } + else + { regChange(cm, from.line, to.line + 1, lendiff); } + + var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) { signalLater(cm, "change", cm, obj); } + if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); } + } + cm.display.selForContextMenu = null; + } + + function replaceRange(doc, code, from, to, origin) { + var assign; + + if (!to) { to = from; } + if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); } + if (typeof code == "string") { code = doc.splitLines(code); } + makeChange(doc, {from: from, to: to, text: code, origin: origin}); + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + if (sub.ranges) { + if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue + } + for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { + var cur = sub.changes[j$1]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, line = handle; + if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); } + else { no = lineNo(handle); } + if (no == null) { return null } + if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); } + return line + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + var height = 0; + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length }, + + // Remove the n lines at offset 'at'. + removeInner: function(at, n) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + + // Helper used to collapse a small branch into a single leaf. + collapse: function(lines) { + lines.push.apply(lines, this.lines); + }, + + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function(at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; } + }, + + // Used to iterate over a part of the tree. + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + { if (op(this.lines[at])) { return true } } + } + }; + + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size }, + + removeInner: function(at, n) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) { break } + at = 0; + } else { at -= sz; } + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && + (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + + collapse: function(lines) { + for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); } + }, + + insertInner: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. + // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. + var remaining = child.lines.length % 25 + 25; + for (var pos = remaining; pos < child.lines.length;) { + var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); + child.height -= leaf.height; + this.children.splice(++i, 0, leaf); + leaf.parent = this; + } + child.lines = child.lines.slice(0, remaining); + this.maybeSpill(); + } + break + } + at -= sz; + } + }, + + // When a node has grown, check whether it should be split. + maybeSpill: function() { + if (this.children.length <= 10) { return } + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10) + me.parent.maybeSpill(); + }, + + iterN: function(at, n, op) { + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) { return true } + if ((n -= used) == 0) { break } + at = 0; + } else { at -= sz; } + } + } + }; + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = function(doc, node, options) { + if (options) { for (var opt in options) { if (options.hasOwnProperty(opt)) + { this[opt] = options[opt]; } } } + this.doc = doc; + this.node = node; + }; + + LineWidget.prototype.clear = function () { + var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); + if (no == null || !ws) { return } + for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } } + if (!ws.length) { line.widgets = null; } + var height = widgetHeight(this); + updateLineHeight(line, Math.max(0, line.height - height)); + if (cm) { + runInOp(cm, function () { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + }); + signalLater(cm, "lineWidgetCleared", cm, this, no); + } + }; + + LineWidget.prototype.changed = function () { + var this$1$1 = this; + + var oldH = this.height, cm = this.doc.cm, line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) { return } + if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); } + if (cm) { + runInOp(cm, function () { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + signalLater(cm, "lineWidgetChanged", cm, this$1$1, lineNo(line)); + }); + } + }; + eventMixin(LineWidget); + + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) + { addToScrollTop(cm, diff); } + } + + function addLineWidget(doc, handle, node, options) { + var widget = new LineWidget(doc, node, options); + var cm = doc.cm; + if (cm && widget.noHScroll) { cm.display.alignWidgets = true; } + changeLine(doc, handle, "widget", function (line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) { widgets.push(widget); } + else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); } + widget.line = line; + if (cm && !lineIsHidden(doc, line)) { + var aboveVisible = heightAtLine(line) < doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) { addToScrollTop(cm, widget.height); } + cm.curOp.forceUpdate = true; + } + return true + }); + if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); } + return widget + } + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + + var TextMarker = function(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + this.id = ++nextMarkerId; + }; + + // Clear the marker. + TextMarker.prototype.clear = function () { + if (this.explicitlyCleared) { return } + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) { startOperation(cm); } + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) { signalLater(this, "clear", found.from, found.to); } + } + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), "text"); } + else if (cm) { + if (span.to != null) { max = lineNo(line); } + if (span.from != null) { min = lineNo(line); } + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) + { updateLineHeight(line, textHeight(cm.display)); } + } + if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) { + var visual = visualLine(this.lines[i$1]), len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } } + + if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); } + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) { reCheckSelection(cm.doc); } + } + if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); } + if (withOp) { endOperation(cm); } + if (this.parent) { this.parent.clear(); } + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function (side, lineObj) { + if (side == null && this.type == "bookmark") { side = 1; } + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) { return from } + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) { return to } + } + } + return from && {from: from, to: to} + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function () { + var this$1$1 = this; + + var pos = this.find(-1, true), widget = this, cm = this.doc.cm; + if (!pos || !cm) { return } + runInOp(cm, function () { + var line = pos.line, lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) + { updateLineHeight(line, line.height + dHeight); } + } + signalLater(cm, "markerChanged", cm, this$1$1); + }); + }; + + TextMarker.prototype.attachLine = function (line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); } + } + this.lines.push(line); + }; + + TextMarker.prototype.detachLine = function (line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp + ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + eventMixin(TextMarker); + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) { return markTextShared(doc, from, to, options, type) } + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) } + + var marker = new TextMarker(doc, type), diff = cmp(from, to); + if (options) { copyObj(options, marker, false); } + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) + { return marker } + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); } + if (options.insertLeft) { marker.widgetNode.insertLeft = true; } + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || + from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) + { throw new Error("Inserting collapsed marker partially overlapping an existing one") } + seeCollapsedSpans(); + } + + if (marker.addToHistory) + { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); } + + var curLine = from.line, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function (line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) + { updateMaxLine = true; } + if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); } + addMarkedSpan(line, new MarkedSpan(marker, + curLine == from.line ? from.ch : null, + curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) { + if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); } + }); } + + if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); } + + if (marker.readOnly) { + seeReadOnlySpans(); + if (doc.history.done.length || doc.history.undone.length) + { doc.clearHistory(); } + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) { cm.curOp.updateMaxLine = true; } + if (marker.collapsed) + { regChange(cm, from.line, to.line + 1); } + else if (marker.className || marker.startStyle || marker.endStyle || marker.css || + marker.attributes || marker.title) + { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } } + if (marker.atomic) { reCheckSelection(cm.doc); } + signalLater(cm, "markerAdded", cm, marker); + } + return marker + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = function(markers, primary) { + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) + { markers[i].parent = this; } + }; + + SharedTextMarker.prototype.clear = function () { + if (this.explicitlyCleared) { return } + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + { this.markers[i].clear(); } + signalLater(this, "clear"); + }; + + SharedTextMarker.prototype.find = function (side, lineObj) { + return this.primary.find(side, lineObj) + }; + eventMixin(SharedTextMarker); + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function (doc) { + if (widget) { options.widgetNode = widget.cloneNode(true); } + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + { if (doc.linked[i].isParent) { return } } + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary) + } + + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; }) + } + + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], pos = marker.find(); + var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + + function detachSharedMarkers(markers) { + var loop = function ( i ) { + var marker = markers[i], linked = [marker.primary.doc]; + linkedDocs(marker.primary.doc, function (d) { return linked.push(d); }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + }; + + for (var i = 0; i < markers.length; i++) loop( i ); + } + + var nextDocId = 0; + var Doc = function(text, mode, firstLine, lineSep, direction) { + if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) } + if (firstLine == null) { firstLine = 0; } + + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.modeFrontier = this.highlightFrontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + this.lineSep = lineSep; + this.direction = (direction == "rtl") ? "rtl" : "ltr"; + this.extend = false; + + if (typeof text == "string") { text = this.splitLines(text); } + updateDoc(this, {from: start, to: start, text: text}); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function(from, to, op) { + if (op) { this.iterN(from - this.first, to - from, op); } + else { this.iterN(this.first, this.first + this.size, from); } + }, + + // Non-public interface for adding and removing lines. + insert: function(at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) { height += lines[i].height; } + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + setValue: docMethodOp(function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: this.splitLines(code), origin: "setValue", full: true}, true); + if (this.cm) { scrollToCoords(this.cm, 0, 0); } + setSelection(this, simpleSelection(top), sel_dontScroll); + }), + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) { return lines } + if (lineSep === '') { return lines.join('') } + return lines.join(lineSep || this.lineSeparator()) + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text}, + + getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }}, + getLineNumber: function(line) {return lineNo(line)}, + + getLineHandleVisualStart: function(line) { + if (typeof line == "number") { line = getLine(this, line); } + return visualLine(line) + }, + + lineCount: function() {return this.size}, + firstLine: function() {return this.first}, + lastLine: function() {return this.first + this.size - 1}, + + clipPos: function(pos) {return clipPos(this, pos)}, + + getCursor: function(start) { + var range = this.sel.primary(), pos; + if (start == null || start == "head") { pos = range.head; } + else if (start == "anchor") { pos = range.anchor; } + else if (start == "end" || start == "to" || start === false) { pos = range.to(); } + else { pos = range.from(); } + return pos + }, + listSelections: function() { return this.sel.ranges }, + somethingSelected: function() {return this.sel.somethingSelected()}, + + setCursor: docMethodOp(function(line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function(anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function(head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function(heads, options) { + extendSelections(this, clipPosArray(this, heads), options); + }), + extendSelectionsBy: docMethodOp(function(f, options) { + var heads = map(this.sel.ranges, f); + extendSelections(this, clipPosArray(this, heads), options); + }), + setSelections: docMethodOp(function(ranges, primary, options) { + if (!ranges.length) { return } + var out = []; + for (var i = 0; i < ranges.length; i++) + { out[i] = new Range(clipPos(this, ranges[i].anchor), + clipPos(this, ranges[i].head || ranges[i].anchor)); } + if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); } + setSelection(this, normalizeSelection(this.cm, out, primary), options); + }), + addSelection: docMethodOp(function(anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); + }), + + getSelection: function(lineSep) { + var ranges = this.sel.ranges, lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) { return lines } + else { return lines.join(lineSep || this.lineSeparator()) } + }, + getSelections: function(lineSep) { + var parts = [], ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); } + parts[i] = sel; + } + return parts + }, + replaceSelection: function(code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) + { dup[i] = code; } + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function(code, collapse, origin) { + var changes = [], sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin}; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i$1 = changes.length - 1; i$1 >= 0; i$1--) + { makeChange(this, changes[i$1]); } + if (newSel) { setSelectionReplaceHistory(this, newSel); } + else if (this.cm) { ensureCursorVisible(this.cm); } + }), + undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), + redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), + undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), + redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), + + setExtending: function(val) {this.extend = val;}, + getExtending: function() {return this.extend}, + + historySize: function() { + var hist = this.history, done = 0, undone = 0; + for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } } + for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } } + return {undo: done, redo: undone} + }, + clearHistory: function() { + var this$1$1 = this; + + this.history = new History(this.history); + linkedDocs(this, function (doc) { return doc.history = this$1$1.history; }, true); + }, + + markClean: function() { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function(forceSplit) { + if (forceSplit) + { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; } + return this.history.generation + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration) + }, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)} + }, + setHistory: function(histData) { + var hist = this.history = new History(this.history); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + + setGutterMarker: docMethodOp(function(line, gutterID, value) { + return changeLine(this, line, "gutter", function (line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) { line.gutterMarkers = null; } + return true + }) + }), + + clearGutter: docMethodOp(function(gutterID) { + var this$1$1 = this; + + this.iter(function (line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + changeLine(this$1$1, line, "gutter", function () { + line.gutterMarkers[gutterID] = null; + if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; } + return true + }); + } + }); + }), + + lineInfo: function(line) { + var n; + if (typeof line == "number") { + if (!isLine(this, line)) { return null } + n = line; + line = getLine(this, line); + if (!line) { return null } + } else { + n = lineNo(line); + if (n == null) { return null } + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets} + }, + + addLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + if (!line[prop]) { line[prop] = cls; } + else if (classTest(cls).test(line[prop])) { return false } + else { line[prop] += " " + cls; } + return true + }) + }), + removeLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) { return false } + else if (cls == null) { line[prop] = null; } + else { + var found = cur.match(classTest(cls)); + if (!found) { return false } + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true + }) + }), + + addLineWidget: docMethodOp(function(handle, node, options) { + return addLineWidget(this, handle, node, options) + }), + removeLineWidget: function(widget) { widget.clear(); }, + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range") + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, shared: options && options.shared, + handleMouseEvents: options && options.handleMouseEvents}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark") + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + { markers.push(span.marker.parent || span.marker); } + } } + return markers + }, + findMarks: function(from, to, filter) { + from = clipPos(this, from); to = clipPos(this, to); + var found = [], lineNo = from.line; + this.iter(from.line, to.line + 1, function (line) { + var spans = line.markedSpans; + if (spans) { for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(span.to != null && lineNo == from.line && from.ch >= span.to || + span.from == null && lineNo != from.line || + span.from != null && lineNo == to.line && span.from >= to.ch) && + (!filter || filter(span.marker))) + { found.push(span.marker.parent || span.marker); } + } } + ++lineNo; + }); + return found + }, + getAllMarks: function() { + var markers = []; + this.iter(function (line) { + var sps = line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) + { if (sps[i].from != null) { markers.push(sps[i].marker); } } } + }); + return markers + }, + + posFromIndex: function(off) { + var ch, lineNo = this.first, sepSize = this.lineSeparator().length; + this.iter(function (line) { + var sz = line.text.length + sepSize; + if (sz > off) { ch = off; return true } + off -= sz; + ++lineNo; + }); + return clipPos(this, Pos(lineNo, ch)) + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) { return 0 } + var sepSize = this.lineSeparator().length; + this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value + index += line.text.length + sepSize; + }); + return index + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), + this.modeOption, this.first, this.lineSep, this.direction); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc + }, + + linkedDoc: function(options) { + if (!options) { options = {}; } + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) { from = options.from; } + if (options.to != null && options.to < to) { to = options.to; } + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); + if (options.sharedHist) { copy.history = this.history + ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy + }, + unlinkDoc: function(other) { + if (other instanceof CodeMirror) { other = other.doc; } + if (this.linked) { for (var i = 0; i < this.linked.length; ++i) { + var link = this.linked[i]; + if (link.doc != other) { continue } + this.linked.splice(i, 1); + other.unlinkDoc(this); + detachSharedMarkers(findSharedMarkers(this)); + break + } } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode}, + getEditor: function() {return this.cm}, + + splitLines: function(str) { + if (this.lineSep) { return str.split(this.lineSep) } + return splitLinesAuto(str) + }, + lineSeparator: function() { return this.lineSep || "\n" }, + + setDirection: docMethodOp(function (dir) { + if (dir != "rtl") { dir = "ltr"; } + if (dir == this.direction) { return } + this.direction = dir; + this.iter(function (line) { return line.order = null; }); + if (this.cm) { directionChanged(this.cm); } + }) + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + + function onDrop(e) { + var cm = this; + clearDragCursor(cm); + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) + { return } + e_preventDefault(e); + if (ie) { lastDrop = +new Date; } + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || cm.isReadOnly()) { return } + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var markAsReadAndPasteIfAllFilesAreRead = function () { + if (++read == n) { + operation(cm, function () { + pos = clipPos(cm.doc, pos); + var change = {from: pos, to: pos, + text: cm.doc.splitLines( + text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())), + origin: "paste"}; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change)))); + })(); + } + }; + var readTextFromFile = function (file, i) { + if (cm.options.allowDropFileTypes && + indexOf(cm.options.allowDropFileTypes, file.type) == -1) { + markAsReadAndPasteIfAllFilesAreRead(); + return + } + var reader = new FileReader; + reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); }; + reader.onload = function () { + var content = reader.result; + if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { + markAsReadAndPasteIfAllFilesAreRead(); + return + } + text[i] = content; + markAsReadAndPasteIfAllFilesAreRead(); + }; + reader.readAsText(file); + }; + for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); } + } else { // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(function () { return cm.display.input.focus(); }, 20); + return + } + try { + var text$1 = e.dataTransfer.getData("Text"); + if (text$1) { + var selected; + if (cm.state.draggingText && !cm.state.draggingText.copy) + { selected = cm.listSelections(); } + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1) + { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } } + cm.replaceSelection(text$1, "around", "paste"); + cm.display.input.focus(); + } + } + catch(e$1){} + } + } + + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return } + + e.dataTransfer.setData("Text", cm.getSelection()); + e.dataTransfer.effectAllowed = "copyMove"; + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) { img.parentNode.removeChild(img); } + } + } + + function onDragOver(cm, e) { + var pos = posFromMouse(cm, e); + if (!pos) { return } + var frag = document.createDocumentFragment(); + drawSelectionCursor(cm, pos, frag); + if (!cm.display.dragCursor) { + cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); + cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); + } + removeChildrenAndAdd(cm.display.dragCursor, frag); + } + + function clearDragCursor(cm) { + if (cm.display.dragCursor) { + cm.display.lineSpace.removeChild(cm.display.dragCursor); + cm.display.dragCursor = null; + } + } + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.getElementsByClassName) { return } + var byClass = document.getElementsByClassName("CodeMirror"), editors = []; + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) { editors.push(cm); } + } + if (editors.length) { editors[0].operation(function () { + for (var i = 0; i < editors.length; i++) { f(editors[i]); } + }); } + } + + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) { return } + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function () { + if (resizeTimer == null) { resizeTimer = setTimeout(function () { + resizeTimer = null; + forEachCodeMirror(onResize); + }, 100); } + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function () { return forEachCodeMirror(onBlur); }); + } + // Called when the window resizes + function onResize(cm) { + var d = cm.display; + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + d.scrollbarsClipped = false; + cm.setSize(); + } + + var keyNames = { + 3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", + 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 145: "ScrollLock", + 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 224: "Mod", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", + 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert" + }; + + // Number keys + for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); } + // Alphabetic keys + for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); } + // Function keys + for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; } + + var keyMap = {}; + + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", + "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", + "Esc": "singleSelection" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", + "fallthrough": "basic" + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", + "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", + "Ctrl-T": "transposeChars", "Ctrl-O": "openLine" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", + "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", + "fallthrough": ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function normalizeKeyName(name) { + var parts = name.split(/-(?!$)/); + name = parts[parts.length - 1]; + var alt, ctrl, shift, cmd; + for (var i = 0; i < parts.length - 1; i++) { + var mod = parts[i]; + if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; } + else if (/^a(lt)?$/i.test(mod)) { alt = true; } + else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; } + else if (/^s(hift)?$/i.test(mod)) { shift = true; } + else { throw new Error("Unrecognized modifier name: " + mod) } + } + if (alt) { name = "Alt-" + name; } + if (ctrl) { name = "Ctrl-" + name; } + if (cmd) { name = "Cmd-" + name; } + if (shift) { name = "Shift-" + name; } + return name + } + + // This is a kludge to keep keymaps mostly working as raw objects + // (backwards compatibility) while at the same time support features + // like normalization and multi-stroke key bindings. It compiles a + // new normalized keymap, and then updates the old object to reflect + // this. + function normalizeKeyMap(keymap) { + var copy = {}; + for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) { + var value = keymap[keyname]; + if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue } + if (value == "...") { delete keymap[keyname]; continue } + + var keys = map(keyname.split(" "), normalizeKeyName); + for (var i = 0; i < keys.length; i++) { + var val = (void 0), name = (void 0); + if (i == keys.length - 1) { + name = keys.join(" "); + val = value; + } else { + name = keys.slice(0, i + 1).join(" "); + val = "..."; + } + var prev = copy[name]; + if (!prev) { copy[name] = val; } + else if (prev != val) { throw new Error("Inconsistent bindings for " + name) } + } + delete keymap[keyname]; + } } + for (var prop in copy) { keymap[prop] = copy[prop]; } + return keymap + } + + function lookupKey(key, map, handle, context) { + map = getKeyMap(map); + var found = map.call ? map.call(key, context) : map[key]; + if (found === false) { return "nothing" } + if (found === "...") { return "multi" } + if (found != null && handle(found)) { return "handled" } + + if (map.fallthrough) { + if (Object.prototype.toString.call(map.fallthrough) != "[object Array]") + { return lookupKey(key, map.fallthrough, handle, context) } + for (var i = 0; i < map.fallthrough.length; i++) { + var result = lookupKey(key, map.fallthrough[i], handle, context); + if (result) { return result } + } + } + } + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + function isModifierKey(value) { + var name = typeof value == "string" ? value : keyNames[value.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod" + } + + function addModifierNames(name, event, noShift) { + var base = name; + if (event.altKey && base != "Alt") { name = "Alt-" + name; } + if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; } + if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Mod") { name = "Cmd-" + name; } + if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; } + return name + } + + // Look up the name of a key as indicated by an event object. + function keyName(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) { return false } + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) { return false } + // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause, + // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+) + if (event.keyCode == 3 && event.code) { name = event.code; } + return addModifierNames(name, event, noShift) + } + + function getKeyMap(val) { + return typeof val == "string" ? keyMap[val] : val + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function () { + for (var i = kill.length - 1; i >= 0; i--) + { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); } + ensureCursorVisible(cm); + }); + } + + function moveCharLogically(line, ch, dir) { + var target = skipExtendingChars(line.text, ch + dir, dir); + return target < 0 || target > line.text.length ? null : target + } + + function moveLogically(line, start, dir) { + var ch = moveCharLogically(line, start.ch, dir); + return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before") + } + + function endOfLine(visually, cm, lineObj, lineNo, dir) { + if (visually) { + if (cm.doc.direction == "rtl") { dir = -dir; } + var order = getOrder(lineObj, cm.doc.direction); + if (order) { + var part = dir < 0 ? lst(order) : order[0]; + var moveInStorageOrder = (dir < 0) == (part.level == 1); + var sticky = moveInStorageOrder ? "after" : "before"; + var ch; + // With a wrapped rtl chunk (possibly spanning multiple bidi parts), + // it could be that the last bidi part is not on the last visual line, + // since visual lines contain content order-consecutive chunks. + // Thus, in rtl, we are looking for the first (content-order) character + // in the rtl chunk that is on the last line (that is, the same line + // as the last (content-order) character). + if (part.level > 0 || cm.doc.direction == "rtl") { + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; + ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch); + if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); } + } else { ch = dir < 0 ? part.to : part.from; } + return new Pos(lineNo, ch, sticky) + } + } + return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after") + } + + function moveVisually(cm, line, start, dir) { + var bidi = getOrder(line, cm.doc.direction); + if (!bidi) { return moveLogically(line, start, dir) } + if (start.ch >= line.text.length) { + start.ch = line.text.length; + start.sticky = "before"; + } else if (start.ch <= 0) { + start.ch = 0; + start.sticky = "after"; + } + var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos]; + if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { + // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines, + // nothing interesting happens. + return moveLogically(line, start, dir) + } + + var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); }; + var prep; + var getWrappedLineExtent = function (ch) { + if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} } + prep = prep || prepareMeasureForLine(cm, line); + return wrappedLineExtentChar(cm, line, prep, ch) + }; + var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); + + if (cm.doc.direction == "rtl" || part.level == 1) { + var moveInStorageOrder = (part.level == 1) == (dir < 0); + var ch = mv(start, moveInStorageOrder ? 1 : -1); + if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) { + // Case 2: We move within an rtl part or in an rtl editor on the same visual line + var sticky = moveInStorageOrder ? "before" : "after"; + return new Pos(start.line, ch, sticky) + } + } + + // Case 3: Could not move within this bidi part in this visual line, so leave + // the current bidi part + + var searchInVisualLine = function (partPos, dir, wrappedLineExtent) { + var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder + ? new Pos(start.line, mv(ch, 1), "before") + : new Pos(start.line, ch, "after"); }; + + for (; partPos >= 0 && partPos < bidi.length; partPos += dir) { + var part = bidi[partPos]; + var moveInStorageOrder = (dir > 0) == (part.level != 1); + var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1); + if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) } + ch = moveInStorageOrder ? part.from : mv(part.to, -1); + if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) } + } + }; + + // Case 3a: Look for other bidi parts on the same visual line + var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent); + if (res) { return res } + + // Case 3b: Look for other bidi parts on the next visual line + var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1); + if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { + res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); + if (res) { return res } + } + + // Case 4: Nowhere to move + return null + } + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = { + selectAll: selectAll, + singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); }, + killLine: function (cm) { return deleteNearSelection(cm, function (range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) + { return {from: range.head, to: Pos(range.head.line + 1, 0)} } + else + { return {from: range.head, to: Pos(range.head.line, len)} } + } else { + return {from: range.from(), to: range.to()} + } + }); }, + deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0)) + }); }); }, + delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), to: range.from() + }); }); }, + delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({left: 0, top: top}, "div"); + return {from: leftPos, to: range.from()} + }); }, + delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + return {from: range.from(), to: rightPos } + }); }, + undo: function (cm) { return cm.undo(); }, + redo: function (cm) { return cm.redo(); }, + undoSelection: function (cm) { return cm.undoSelection(); }, + redoSelection: function (cm) { return cm.redoSelection(); }, + goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); }, + goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); }, + goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); }, + {origin: "+move", bias: 1} + ); }, + goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); }, + {origin: "+move", bias: 1} + ); }, + goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); }, + {origin: "+move", bias: -1} + ); }, + goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div") + }, sel_move); }, + goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: 0, top: top}, "div") + }, sel_move); }, + goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({left: 0, top: top}, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) } + return pos + }, sel_move); }, + goLineUp: function (cm) { return cm.moveV(-1, "line"); }, + goLineDown: function (cm) { return cm.moveV(1, "line"); }, + goPageUp: function (cm) { return cm.moveV(-1, "page"); }, + goPageDown: function (cm) { return cm.moveV(1, "page"); }, + goCharLeft: function (cm) { return cm.moveH(-1, "char"); }, + goCharRight: function (cm) { return cm.moveH(1, "char"); }, + goColumnLeft: function (cm) { return cm.moveH(-1, "column"); }, + goColumnRight: function (cm) { return cm.moveH(1, "column"); }, + goWordLeft: function (cm) { return cm.moveH(-1, "word"); }, + goGroupRight: function (cm) { return cm.moveH(1, "group"); }, + goGroupLeft: function (cm) { return cm.moveH(-1, "group"); }, + goWordRight: function (cm) { return cm.moveH(1, "word"); }, + delCharBefore: function (cm) { return cm.deleteH(-1, "codepoint"); }, + delCharAfter: function (cm) { return cm.deleteH(1, "char"); }, + delWordBefore: function (cm) { return cm.deleteH(-1, "word"); }, + delWordAfter: function (cm) { return cm.deleteH(1, "word"); }, + delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); }, + delGroupAfter: function (cm) { return cm.deleteH(1, "group"); }, + indentAuto: function (cm) { return cm.indentSelection("smart"); }, + indentMore: function (cm) { return cm.indentSelection("add"); }, + indentLess: function (cm) { return cm.indentSelection("subtract"); }, + insertTab: function (cm) { return cm.replaceSelection("\t"); }, + insertSoftTab: function (cm) { + var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(spaceStr(tabSize - col % tabSize)); + } + cm.replaceSelections(spaces); + }, + defaultTab: function (cm) { + if (cm.somethingSelected()) { cm.indentSelection("add"); } + else { cm.execCommand("insertTab"); } + }, + // Swap the two chars left and right of each selection's head. + // Move cursor behind the two swapped characters afterwards. + // + // Doesn't consider line feeds a character. + // Doesn't scan more than one line above to find a character. + // Doesn't do anything on an empty line. + // Doesn't do anything with non-empty selections. + transposeChars: function (cm) { return runInOp(cm, function () { + var ranges = cm.listSelections(), newSel = []; + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) { continue } + var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); } + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), + Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) { + cur = new Pos(cur.line, 1); + cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + + prev.charAt(prev.length - 1), + Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); + } + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); }, + newlineAndIndent: function (cm) { return runInOp(cm, function () { + var sels = cm.listSelections(); + for (var i = sels.length - 1; i >= 0; i--) + { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); } + sels = cm.listSelections(); + for (var i$1 = 0; i$1 < sels.length; i$1++) + { cm.indentLine(sels[i$1].from().line, null, true); } + ensureCursorVisible(cm); + }); }, + openLine: function (cm) { return cm.replaceSelection("\n", "start"); }, + toggleOverwrite: function (cm) { return cm.toggleOverwrite(); } + }; + + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, visual, lineN, 1) + } + function lineEnd(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLineEnd(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, line, lineN, -1) + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line, cm.doc.direction); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(start.ch, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) + } + return start + } + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) { return false } + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + cm.display.input.ensurePolled(); + var prevShift = cm.display.shift, done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + if (dropShift) { cm.display.shift = false; } + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done + } + + function lookupKeyForEditor(cm, name, handle) { + for (var i = 0; i < cm.state.keyMaps.length; i++) { + var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); + if (result) { return result } + } + return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm)) + || lookupKey(name, cm.options.keyMap, handle, cm) + } + + // Note that, despite the name, this function is also used to check + // for bound mouse clicks. + + var stopSeq = new Delayed; + + function dispatchKey(cm, name, e, handle) { + var seq = cm.state.keySeq; + if (seq) { + if (isModifierKey(name)) { return "handled" } + if (/\'$/.test(name)) + { cm.state.keySeq = null; } + else + { stopSeq.set(50, function () { + if (cm.state.keySeq == seq) { + cm.state.keySeq = null; + cm.display.input.reset(); + } + }); } + if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true } + } + return dispatchKeyInner(cm, name, e, handle) + } + + function dispatchKeyInner(cm, name, e, handle) { + var result = lookupKeyForEditor(cm, name, handle); + + if (result == "multi") + { cm.state.keySeq = name; } + if (result == "handled") + { signalLater(cm, "keyHandled", cm, name, e); } + + if (result == "handled" || result == "multi") { + e_preventDefault(e); + restartBlink(cm); + } + + return !!result + } + + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + var name = keyName(e, true); + if (!name) { return false } + + if (e.shiftKey && !cm.state.keySeq) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); }) + || dispatchKey(cm, name, e, function (b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) + { return doHandleBinding(cm, b) } + }) + } else { + return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); }) + } + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); }) + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + if (e.target && e.target != cm.display.input.getField()) { return } + cm.curOp.focus = activeElt(); + if (signalDOMEvent(cm, e)) { return } + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; } + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + { cm.replaceSelection("", null, "cut"); } + } + if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand) + { document.execCommand("cut"); } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) + { showCrossHair(cm); } + } + + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + + function onKeyUp(e) { + if (e.keyCode == 16) { this.doc.sel.shift = false; } + signalDOMEvent(this, e); + } + + function onKeyPress(e) { + var cm = this; + if (e.target && e.target != cm.display.input.getField()) { return } + if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return } + var keyCode = e.keyCode, charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return} + if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return } + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + // Some browsers fire keypress events for backspace + if (ch == "\x08") { return } + if (handleCharBinding(cm, e, ch)) { return } + cm.display.input.onKeyPress(e); + } + + var DOUBLECLICK_DELAY = 400; + + var PastClick = function(time, pos, button) { + this.time = time; + this.pos = pos; + this.button = button; + }; + + PastClick.prototype.compare = function (time, pos, button) { + return this.time + DOUBLECLICK_DELAY > time && + cmp(pos, this.pos) == 0 && button == this.button + }; + + var lastClick, lastDoubleClick; + function clickRepeat(pos, button) { + var now = +new Date; + if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { + lastClick = lastDoubleClick = null; + return "triple" + } else if (lastClick && lastClick.compare(now, pos, button)) { + lastDoubleClick = new PastClick(now, pos, button); + lastClick = null; + return "double" + } else { + lastClick = new PastClick(now, pos, button); + lastDoubleClick = null; + return "single" + } + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + var cm = this, display = cm.display; + if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return } + display.input.ensurePolled(); + display.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function () { return display.scroller.draggable = true; }, 100); + } + return + } + if (clickInGutter(cm, e)) { return } + var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"; + window.focus(); + + // #3261: make sure, that we're not starting a second selection + if (button == 1 && cm.state.selectingText) + { cm.state.selectingText(e); } + + if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return } + + if (button == 1) { + if (pos) { leftButtonDown(cm, pos, repeat, e); } + else if (e_target(e) == display.scroller) { e_preventDefault(e); } + } else if (button == 2) { + if (pos) { extendSelection(cm.doc, pos); } + setTimeout(function () { return display.input.focus(); }, 20); + } else if (button == 3) { + if (captureRightClick) { cm.display.input.onContextMenu(e); } + else { delayBlurEvent(cm); } + } + } + + function handleMappedButton(cm, button, pos, repeat, event) { + var name = "Click"; + if (repeat == "double") { name = "Double" + name; } + else if (repeat == "triple") { name = "Triple" + name; } + name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; + + return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { + if (typeof bound == "string") { bound = commands[bound]; } + if (!bound) { return false } + var done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + done = bound(cm, pos) != Pass; + } finally { + cm.state.suppressEdits = false; + } + return done + }) + } + + function configureMouse(cm, repeat, event) { + var option = cm.getOption("configureMouse"); + var value = option ? option(cm, repeat, event) : {}; + if (value.unit == null) { + var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; + value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; + } + if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; } + if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; } + if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); } + return value + } + + function leftButtonDown(cm, pos, repeat, event) { + if (ie) { setTimeout(bind(ensureFocus, cm), 0); } + else { cm.curOp.focus = activeElt(); } + + var behavior = configureMouse(cm, repeat, event); + + var sel = cm.doc.sel, contained; + if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && + repeat == "single" && (contained = sel.contains(pos)) > -1 && + (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && + (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) + { leftButtonStartDrag(cm, event, pos, behavior); } + else + { leftButtonSelect(cm, event, pos, behavior); } + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, event, pos, behavior) { + var display = cm.display, moved = false; + var dragEnd = operation(cm, function (e) { + if (webkit) { display.scroller.draggable = false; } + cm.state.draggingText = false; + if (cm.state.delayingBlurEvent) { + if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; } + else { delayBlurEvent(cm); } + } + off(display.wrapper.ownerDocument, "mouseup", dragEnd); + off(display.wrapper.ownerDocument, "mousemove", mouseMove); + off(display.scroller, "dragstart", dragStart); + off(display.scroller, "drop", dragEnd); + if (!moved) { + e_preventDefault(e); + if (!behavior.addNew) + { extendSelection(cm.doc, pos, null, null, behavior.extend); } + // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) + if ((webkit && !safari) || ie && ie_version == 9) + { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); } + else + { display.input.focus(); } + } + }); + var mouseMove = function(e2) { + moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; + }; + var dragStart = function () { return moved = true; }; + // Let the drag handler handle this. + if (webkit) { display.scroller.draggable = true; } + cm.state.draggingText = dragEnd; + dragEnd.copy = !behavior.moveOnDrag; + on(display.wrapper.ownerDocument, "mouseup", dragEnd); + on(display.wrapper.ownerDocument, "mousemove", mouseMove); + on(display.scroller, "dragstart", dragStart); + on(display.scroller, "drop", dragEnd); + + cm.state.delayingBlurEvent = true; + setTimeout(function () { return display.input.focus(); }, 20); + // IE's approach to draggable + if (display.scroller.dragDrop) { display.scroller.dragDrop(); } + } + + function rangeForUnit(cm, pos, unit) { + if (unit == "char") { return new Range(pos, pos) } + if (unit == "word") { return cm.findWordAt(pos) } + if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) } + var result = unit(cm, pos); + return new Range(result.from, result.to) + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, event, start, behavior) { + if (ie) { delayBlurEvent(cm); } + var display = cm.display, doc = cm.doc; + e_preventDefault(event); + + var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; + if (behavior.addNew && !behavior.extend) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) + { ourRange = ranges[ourIndex]; } + else + { ourRange = new Range(start, start); } + } else { + ourRange = doc.sel.primary(); + ourIndex = doc.sel.primIndex; + } + + if (behavior.unit == "rectangle") { + if (!behavior.addNew) { ourRange = new Range(start, start); } + start = posFromMouse(cm, event, true, true); + ourIndex = -1; + } else { + var range = rangeForUnit(cm, start, behavior.unit); + if (behavior.extend) + { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); } + else + { ourRange = range; } + } + + if (!behavior.addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex == -1) { + ourIndex = ranges.length; + setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), + {scroll: false, origin: "*mouse"}); + } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { + setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), + {scroll: false, origin: "*mouse"}); + startSel = doc.sel; + } else { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } + + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) { return } + lastPos = pos; + + if (behavior.unit == "rectangle") { + var ranges = [], tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); + line <= end; line++) { + var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); + if (left == right) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); } + else if (text.length > leftPos) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); } + } + if (!ranges.length) { ranges.push(new Range(start, start)); } + setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), + {origin: "*mouse", scroll: false}); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var range = rangeForUnit(cm, pos, behavior.unit); + var anchor = oldRange.anchor, head; + if (cmp(range.anchor, anchor) > 0) { + head = range.head; + anchor = minPos(oldRange.from(), range.anchor); + } else { + head = range.anchor; + anchor = maxPos(oldRange.to(), range.head); + } + var ranges$1 = startSel.ranges.slice(0); + ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); + setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); + } + } + + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); + if (!cur) { return } + if (cmp(cur, lastPos) != 0) { + cm.curOp.focus = activeElt(); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); } + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) { setTimeout(operation(cm, function () { + if (counter != curCount) { return } + display.scroller.scrollTop += outside; + extend(e); + }), 50); } + } + } + + function done(e) { + cm.state.selectingText = false; + counter = Infinity; + // If e is null or undefined we interpret this as someone trying + // to explicitly cancel the selection rather than the user + // letting go of the mouse button. + if (e) { + e_preventDefault(e); + display.input.focus(); + } + off(display.wrapper.ownerDocument, "mousemove", move); + off(display.wrapper.ownerDocument, "mouseup", up); + doc.history.lastSelOrigin = null; + } + + var move = operation(cm, function (e) { + if (e.buttons === 0 || !e_button(e)) { done(e); } + else { extend(e); } + }); + var up = operation(cm, done); + cm.state.selectingText = up; + on(display.wrapper.ownerDocument, "mousemove", move); + on(display.wrapper.ownerDocument, "mouseup", up); + } + + // Used when mouse-selecting to adjust the anchor to the proper side + // of a bidi jump depending on the visual position of the head. + function bidiSimplify(cm, range) { + var anchor = range.anchor; + var head = range.head; + var anchorLine = getLine(cm.doc, anchor.line); + if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range } + var order = getOrder(anchorLine); + if (!order) { return range } + var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index]; + if (part.from != anchor.ch && part.to != anchor.ch) { return range } + var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1); + if (boundary == 0 || boundary == order.length) { return range } + + // Compute the relative visual position of the head compared to the + // anchor (<0 is to the left, >0 to the right) + var leftSide; + if (head.line != anchor.line) { + leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; + } else { + var headIndex = getBidiPartAt(order, head.ch, head.sticky); + var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); + if (headIndex == boundary - 1 || headIndex == boundary) + { leftSide = dir < 0; } + else + { leftSide = dir > 0; } + } + + var usePart = order[boundary + (leftSide ? -1 : 0)]; + var from = leftSide == (usePart.level == 1); + var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before"; + return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head) + } + + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent) { + var mX, mY; + if (e.touches) { + mX = e.touches[0].clientX; + mY = e.touches[0].clientY; + } else { + try { mX = e.clientX; mY = e.clientY; } + catch(e$1) { return false } + } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false } + if (prevent) { e_preventDefault(e); } + + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + + if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) } + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.display.gutterSpecs.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.display.gutterSpecs[i]; + signal(cm, type, cm, line, gutter.className, e); + return e_defaultPrevented(e) + } + } + } + + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true) + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return } + if (signalDOMEvent(cm, e, "contextmenu")) { return } + if (!captureRightClick) { cm.display.input.onContextMenu(e); } + } + + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) { return false } + return gutterEvent(cm, e, "gutterContextMenu", false) + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + var Init = {toString: function(){return "CodeMirror.Init"}}; + + var defaults = {}; + var optionHandlers = {}; + + function defineOptions(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) { optionHandlers[name] = + notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; } + } + + CodeMirror.defineOption = option; + + // Passed to option handlers when there is no old value. + CodeMirror.Init = Init; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function (cm, val) { return cm.setValue(val); }, true); + option("mode", null, function (cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function (cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + + option("lineSeparator", null, function (cm, val) { + cm.doc.lineSep = val; + if (!val) { return } + var newBreaks = [], lineNo = cm.doc.first; + cm.doc.iter(function (line) { + for (var pos = 0;;) { + var found = line.text.indexOf(val, pos); + if (found == -1) { break } + pos = found + val.length; + newBreaks.push(Pos(lineNo, found)); + } + lineNo++; + }); + for (var i = newBreaks.length - 1; i >= 0; i--) + { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); } + }); + option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { + cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + if (old != Init) { cm.refresh(); } + }); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true); + option("electricChars", true); + option("inputStyle", mobile ? "contenteditable" : "textarea", function () { + throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME + }, true); + option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true); + option("autocorrect", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true); + option("autocapitalize", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + + option("theme", "default", function (cm) { + themeChanged(cm); + updateGutters(cm); + }, true); + option("keyMap", "default", function (cm, val, old) { + var next = getKeyMap(val); + var prev = old != Init && getKeyMap(old); + if (prev && prev.detach) { prev.detach(cm, next); } + if (next.attach) { next.attach(cm, prev || null); } + }); + option("extraKeys", null); + option("configureMouse", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function (cm, val) { + cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); + updateGutters(cm); + }, true); + option("fixedGutter", true, function (cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true); + option("scrollbarStyle", "native", function (cm) { + initScrollbars(cm); + updateScrollbars(cm); + cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); + cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); + }, true); + option("lineNumbers", false, function (cm, val) { + cm.display.gutterSpecs = getGutters(cm.options.gutters, val); + updateGutters(cm); + }, true); + option("firstLineNumber", 1, updateGutters, true); + option("lineNumberFormatter", function (integer) { return integer; }, updateGutters, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("resetSelectionOnContextMenu", true); + option("lineWiseCopyCut", true); + option("pasteLinesPerSelection", true); + option("selectionsMayTouch", false); + + option("readOnly", false, function (cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + } + cm.display.input.readOnlyChanged(val); + }); + + option("screenReaderLabel", null, function (cm, val) { + val = (val === '') ? null : val; + cm.display.input.screenReaderLabelChanged(val); + }); + + option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true); + option("dragDrop", true, dragDropChanged); + option("allowDropFileTypes", null); + + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; }); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function (cm, val) { + if (!val) { cm.display.input.resetPosition(); } + }); + + option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; }); + option("autofocus", null); + option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true); + option("phrases", null); + } + + function dragDropChanged(cm, value, old) { + var wasOn = old && old != Init; + if (!value != !wasOn) { + var funcs = cm.display.dragFunctions; + var toggle = value ? on : off; + toggle(cm.display.scroller, "dragstart", funcs.start); + toggle(cm.display.scroller, "dragenter", funcs.enter); + toggle(cm.display.scroller, "dragover", funcs.over); + toggle(cm.display.scroller, "dragleave", funcs.leave); + toggle(cm.display.scroller, "drop", funcs.drop); + } + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + cm.display.sizerWidth = null; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function () { return updateScrollbars(cm); }, 100); + } + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + var this$1$1 = this; + + if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) } + + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + + var doc = options.value; + if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); } + else if (options.mode) { doc.modeOption = options.mode; } + this.doc = doc; + + var input = new CodeMirror.inputStyles[options.inputStyle](this); + var display = this.display = new Display(place, doc, input, options); + display.wrapper.CodeMirror = this; + themeChanged(this); + if (options.lineWrapping) + { this.display.wrapper.className += " CodeMirror-wrap"; } + initScrollbars(this); + + this.state = { + keyMaps: [], // stores maps added by addKeyMap + overlays: [], // highlighting overlays, as added by addOverlay + modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, + delayingBlurEvent: false, + focused: false, + suppressEdits: false, // used to disable editing during key handlers when in readOnly mode + pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll + selectingText: false, + draggingText: false, + highlight: new Delayed(), // stores highlight worker timeout + keySeq: null, // Unfinished key sequence + specialChars: null + }; + + if (options.autofocus && !mobile) { display.input.focus(); } + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) { setTimeout(function () { return this$1$1.display.input.reset(true); }, 20); } + + registerEventHandlers(this); + ensureGlobalHandlers(); + + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + + if ((options.autofocus && !mobile) || this.hasFocus()) + { setTimeout(function () { + if (this$1$1.hasFocus() && !this$1$1.state.focused) { onFocus(this$1$1); } + }, 20); } + else + { onBlur(this); } + + for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt)) + { optionHandlers[opt](this, options[opt], Init); } } + maybeUpdateLineNumberWidth(this); + if (options.finishInit) { options.finishInit(this); } + for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); } + endOperation(this); + // Suppress optimizelegibility in Webkit, since it breaks text + // measuring on line wrapping boundaries. + if (webkit && options.lineWrapping && + getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") + { display.lineDiv.style.textRendering = "auto"; } + } + + // The default configuration options. + CodeMirror.defaults = defaults; + // Functions to run when options are changed. + CodeMirror.optionHandlers = optionHandlers; + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) + { on(d.scroller, "dblclick", operation(cm, function (e) { + if (signalDOMEvent(cm, e)) { return } + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return } + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); } + else + { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); } + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); }); + on(d.input.getField(), "contextmenu", function (e) { + if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); } + }); + + // Used to suppress mouse event handling when a touch happens + var touchFinished, prevTouch = {end: 0}; + function finishTouch() { + if (d.activeTouch) { + touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000); + prevTouch = d.activeTouch; + prevTouch.end = +new Date; + } + } + function isMouseLikeTouchEvent(e) { + if (e.touches.length != 1) { return false } + var touch = e.touches[0]; + return touch.radiusX <= 1 && touch.radiusY <= 1 + } + function farAway(touch, other) { + if (other.left == null) { return true } + var dx = other.left - touch.left, dy = other.top - touch.top; + return dx * dx + dy * dy > 20 * 20 + } + on(d.scroller, "touchstart", function (e) { + if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { + d.input.ensurePolled(); + clearTimeout(touchFinished); + var now = +new Date; + d.activeTouch = {start: now, moved: false, + prev: now - prevTouch.end <= 300 ? prevTouch : null}; + if (e.touches.length == 1) { + d.activeTouch.left = e.touches[0].pageX; + d.activeTouch.top = e.touches[0].pageY; + } + } + }); + on(d.scroller, "touchmove", function () { + if (d.activeTouch) { d.activeTouch.moved = true; } + }); + on(d.scroller, "touchend", function (e) { + var touch = d.activeTouch; + if (touch && !eventInWidget(d, e) && touch.left != null && + !touch.moved && new Date - touch.start < 300) { + var pos = cm.coordsChar(d.activeTouch, "page"), range; + if (!touch.prev || farAway(touch, touch.prev)) // Single tap + { range = new Range(pos, pos); } + else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap + { range = cm.findWordAt(pos); } + else // Triple tap + { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); } + cm.setSelection(range.anchor, range.head); + cm.focus(); + e_preventDefault(e); + } + finishTouch(); + }); + on(d.scroller, "touchcancel", finishTouch); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function () { + if (d.scroller.clientHeight) { + updateScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); }); + on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); }); + + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + d.dragFunctions = { + enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }}, + over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }}, + start: function (e) { return onDragStart(cm, e); }, + drop: operation(cm, onDrop), + leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }} + }; + + var inp = d.input.getField(); + on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); }); + on(inp, "keydown", operation(cm, onKeyDown)); + on(inp, "keypress", operation(cm, onKeyPress)); + on(inp, "focus", function (e) { return onFocus(cm, e); }); + on(inp, "blur", function (e) { return onBlur(cm, e); }); + } + + var initHooks = []; + CodeMirror.defineInitHook = function (f) { return initHooks.push(f); }; + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, state; + if (how == null) { how = "add"; } + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) { how = "prev"; } + else { state = getContextBefore(cm, n).state; } + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) { line.stateAfter = null; } + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) { return } + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); } + else { indentation = 0; } + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} } + if (pos < indentation) { indentString += spaceStr(indentation - pos); } + + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + return true + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) { + var range = doc.sel.ranges[i$1]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos$1 = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i$1, new Range(pos$1, pos$1)); + break + } + } + } + } + + // This will be set to a {lineWise: bool, text: [string]} object, so + // that, when pasting, we know what kind of selections the copied + // text was made out of. + var lastCopied = null; + + function setLastCopied(newLastCopied) { + lastCopied = newLastCopied; + } + + function applyTextInput(cm, inserted, deleted, sel, origin) { + var doc = cm.doc; + cm.display.shift = false; + if (!sel) { sel = doc.sel; } + + var recent = +new Date - 200; + var paste = origin == "paste" || cm.state.pasteIncoming > recent; + var textLines = splitLinesAuto(inserted), multiPaste = null; + // When pasting N lines into N selections, insert one line per selection + if (paste && sel.ranges.length > 1) { + if (lastCopied && lastCopied.text.join("\n") == inserted) { + if (sel.ranges.length % lastCopied.text.length == 0) { + multiPaste = []; + for (var i = 0; i < lastCopied.text.length; i++) + { multiPaste.push(doc.splitLines(lastCopied.text[i])); } + } + } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { + multiPaste = map(textLines, function (l) { return [l]; }); + } + } + + var updateInput = cm.curOp.updateInput; + // Normal behavior is to insert the new text into every selection + for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) { + var range = sel.ranges[i$1]; + var from = range.from(), to = range.to(); + if (range.empty()) { + if (deleted && deleted > 0) // Handle deletion + { from = Pos(from.line, from.ch - deleted); } + else if (cm.state.overwrite && !paste) // Handle overwrite + { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); } + else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == textLines.join("\n")) + { from = to = Pos(from.line, 0); } + } + var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines, + origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input")}; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + } + if (inserted && !paste) + { triggerElectric(cm, inserted); } + + ensureCursorVisible(cm); + if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; } + cm.curOp.typing = true; + cm.state.pasteIncoming = cm.state.cutIncoming = -1; + } + + function handlePaste(e, cm) { + var pasted = e.clipboardData && e.clipboardData.getData("Text"); + if (pasted) { + e.preventDefault(); + if (!cm.isReadOnly() && !cm.options.disableInput) + { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); } + return true + } + } + + function triggerElectric(cm, inserted) { + // When an 'electric' character is inserted, immediately trigger a reindent + if (!cm.options.electricChars || !cm.options.smartIndent) { return } + var sel = cm.doc.sel; + + for (var i = sel.ranges.length - 1; i >= 0; i--) { + var range = sel.ranges[i]; + if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue } + var mode = cm.getModeAt(range.head); + var indented = false; + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) + { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indented = indentLine(cm, range.head.line, "smart"); + break + } } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch))) + { indented = indentLine(cm, range.head.line, "smart"); } + } + if (indented) { signalLater(cm, "electricInput", cm, range.head.line); } + } + } + + function copyableRanges(cm) { + var text = [], ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + return {text: text, ranges: ranges} + } + + function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { + field.setAttribute("autocorrect", autocorrect ? "" : "off"); + field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); + field.setAttribute("spellcheck", !!spellcheck); + } + + function hiddenTextarea() { + var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none"); + var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) { te.style.width = "1000px"; } + else { te.setAttribute("wrap", "off"); } + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) { te.style.border = "1px solid black"; } + disableBrowserMagic(te); + return div + } + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + function addEditorMethods(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + var helpers = CodeMirror.helpers = {}; + + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function(){window.focus(); this.display.input.focus();}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") { return } + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + { operation(this, optionHandlers[option])(this, value, old); } + signal(this, "optionChange", this, option); + }, + + getOption: function(option) {return this.options[option]}, + getDoc: function() {return this.doc}, + + addKeyMap: function(map, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map)); + }, + removeKeyMap: function(map) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + { if (maps[i] == map || maps[i].name == map) { + maps.splice(i, 1); + return true + } } + }, + + addOverlay: methodOp(function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) { throw new Error("Overlays may not be stateful.") } + insertSorted(this.state.overlays, + {mode: mode, modeSpec: spec, opaque: options && options.opaque, + priority: (options && options.priority) || 0}, + function (overlay) { return overlay.priority; }); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function(spec) { + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this.state.modeGen++; + regChange(this); + return + } + } + }), + + indentLine: methodOp(function(n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; } + else { dir = dir ? "add" : "subtract"; } + } + if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); } + }), + indentSelection: methodOp(function(how) { + var ranges = this.doc.sel.ranges, end = -1; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (!range.empty()) { + var from = range.from(), to = range.to(); + var start = Math.max(end, from.line); + end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) + { indentLine(this, j, how); } + var newRanges = this.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) + { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); } + } else if (range.head.line > end) { + indentLine(this, range.head.line, how, true); + end = range.head.line; + if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); } + } + } + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos, precise) { + return takeToken(this, pos, precise) + }, + + getLineTokens: function(line, precise) { + return takeToken(this, Pos(line), precise, true) + }, + + getTokenTypeAt: function(pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; + var type; + if (ch == 0) { type = styles[2]; } + else { for (;;) { + var mid = (before + after) >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; } + else if (styles[mid * 2 + 1] < ch) { before = mid + 1; } + else { type = styles[mid * 2 + 2]; break } + } } + var cut = type ? type.indexOf("overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1) + }, + + getModeAt: function(pos) { + var mode = this.doc.mode; + if (!mode.innerMode) { return mode } + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode + }, + + getHelper: function(pos, type) { + return this.getHelpers(pos, type)[0] + }, + + getHelpers: function(pos, type) { + var found = []; + if (!helpers.hasOwnProperty(type)) { return found } + var help = helpers[type], mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) { found.push(help[mode[type]]); } + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) { found.push(val); } + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i$1 = 0; i$1 < help._global.length; i$1++) { + var cur = help._global[i$1]; + if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) + { found.push(cur.val); } + } + return found + }, + + getStateAfter: function(line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getContextBefore(this, line + 1, precise).state + }, + + cursorCoords: function(start, mode) { + var pos, range = this.doc.sel.primary(); + if (start == null) { pos = range.head; } + else if (typeof start == "object") { pos = clipPos(this.doc, start); } + else { pos = start ? range.from() : range.to(); } + return cursorCoords(this, pos, mode || "page") + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page") + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top) + }, + + lineAtHeight: function(height, mode) { + height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset) + }, + heightAtLine: function(line, mode, includeWidgets) { + var end = false, lineObj; + if (typeof line == "number") { + var last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) { line = this.doc.first; } + else if (line > last) { line = last; end = true; } + lineObj = getLine(this.doc, line); + } else { + lineObj = line; + } + return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top + + (end ? this.doc.height - heightAtLine(lineObj) : 0) + }, + + defaultTextHeight: function() { return textHeight(this.display) }, + defaultCharWidth: function() { return charWidth(this.display) }, + + getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + node.setAttribute("cm-ignore-events", "true"); + this.display.input.setUneditable(node); + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + { top = pos.top - node.offsetHeight; } + else if (pos.bottom + node.offsetHeight <= vspace) + { top = pos.bottom; } + if (left + node.offsetWidth > hspace) + { left = hspace - node.offsetWidth; } + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") { left = 0; } + else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; } + node.style.left = left + "px"; + } + if (scroll) + { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); } + }, + + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + triggerOnMouseDown: methodOp(onMouseDown), + + execCommand: function(cmd) { + if (commands.hasOwnProperty(cmd)) + { return commands[cmd].call(null, this) } + }, + + triggerElectric: methodOp(function(text) { triggerElectric(this, text); }), + + findPosH: function(from, amount, unit, visually) { + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + cur = findPosH(this.doc, cur, dir, unit, visually); + if (cur.hitSide) { break } + } + return cur + }, + + moveH: methodOp(function(dir, unit) { + var this$1$1 = this; + + this.extendSelectionsBy(function (range) { + if (this$1$1.display.shift || this$1$1.doc.extend || range.empty()) + { return findPosH(this$1$1.doc, range.head, dir, unit, this$1$1.options.rtlMoveVisually) } + else + { return dir < 0 ? range.from() : range.to() } + }, sel_move); + }), + + deleteH: methodOp(function(dir, unit) { + var sel = this.doc.sel, doc = this.doc; + if (sel.somethingSelected()) + { doc.replaceSelection("", null, "+delete"); } + else + { deleteNearSelection(this, function (range) { + var other = findPosH(doc, range.head, dir, unit, false); + return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other} + }); } + }), + + findPosV: function(from, amount, unit, goalColumn) { + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + var coords = cursorCoords(this, cur, "div"); + if (x == null) { x = coords.left; } + else { coords.left = x; } + cur = findPosV(this, coords, dir, unit); + if (cur.hitSide) { break } + } + return cur + }, + + moveV: methodOp(function(dir, unit) { + var this$1$1 = this; + + var doc = this.doc, goals = []; + var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function (range) { + if (collapse) + { return dir < 0 ? range.from() : range.to() } + var headPos = cursorCoords(this$1$1, range.head, "div"); + if (range.goalColumn != null) { headPos.left = range.goalColumn; } + goals.push(headPos.left); + var pos = findPosV(this$1$1, headPos, dir, unit); + if (unit == "page" && range == doc.sel.primary()) + { addToScrollTop(this$1$1, charCoords(this$1$1, pos, "div").top - headPos.top); } + return pos + }, sel_move); + if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++) + { doc.sel.ranges[i].goalColumn = goals[i]; } } + }), + + // Find the word at the given position (as returned by coordsChar). + findWordAt: function(pos) { + var doc = this.doc, line = getLine(doc, pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; } + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) + ? function (ch) { return isWordChar(ch, helper); } + : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); } + : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); }; + while (start > 0 && check(line.charAt(start - 1))) { --start; } + while (end < line.length && check(line.charAt(end))) { ++end; } + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)) + }, + + toggleOverwrite: function(value) { + if (value != null && value == this.state.overwrite) { return } + if (this.state.overwrite = !this.state.overwrite) + { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + else + { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function() { return this.display.input.getField() == activeElt() }, + isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) }, + + scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }), + getScrollInfo: function() { + var scroller = this.display.scroller; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, + width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, + clientHeight: displayHeight(this), clientWidth: displayWidth(this)} + }, + + scrollIntoView: methodOp(function(range, margin) { + if (range == null) { + range = {from: this.doc.sel.primary().head, to: null}; + if (margin == null) { margin = this.options.cursorScrollMargin; } + } else if (typeof range == "number") { + range = {from: Pos(range, 0), to: null}; + } else if (range.from == null) { + range = {from: range, to: null}; + } + if (!range.to) { range.to = range.from; } + range.margin = margin || 0; + + if (range.from.line != null) { + scrollToRange(this, range); + } else { + scrollToCoordsRange(this, range.from, range.to, range.margin); + } + }), + + setSize: methodOp(function(width, height) { + var this$1$1 = this; + + var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; }; + if (width != null) { this.display.wrapper.style.width = interpret(width); } + if (height != null) { this.display.wrapper.style.height = interpret(height); } + if (this.options.lineWrapping) { clearLineMeasurementCache(this); } + var lineNo = this.display.viewFrom; + this.doc.iter(lineNo, this.display.viewTo, function (line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) + { if (line.widgets[i].noHScroll) { regLineChange(this$1$1, lineNo, "widget"); break } } } + ++lineNo; + }); + this.curOp.forceUpdate = true; + signal(this, "refresh", this); + }), + + operation: function(f){return runInOp(this, f)}, + startOperation: function(){return startOperation(this)}, + endOperation: function(){return endOperation(this)}, + + refresh: methodOp(function() { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this.display); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping) + { estimateLineHeights(this); } + signal(this, "refresh", this); + }), + + swapDoc: methodOp(function(doc) { + var old = this.doc; + old.cm = null; + // Cancel the current text selection if any (#5821) + if (this.state.selectingText) { this.state.selectingText(); } + attachDoc(this, doc); + clearCaches(this); + this.display.input.reset(); + scrollToCoords(this, doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old + }), + + phrase: function(phraseText) { + var phrases = this.options.phrases; + return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText + }, + + getInputField: function(){return this.display.input.getField()}, + getWrapperElement: function(){return this.display.wrapper}, + getScrollerElement: function(){return this.display.scroller}, + getGutterElement: function(){return this.display.gutters} + }; + eventMixin(CodeMirror); + + CodeMirror.registerHelper = function(type, name, value) { + if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; } + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({pred: predicate, val: value}); + }; + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "codepoint", "char", "column" (like char, but + // doesn't cross line boundaries), "word" (across next word), or + // "group" (to the start of next group of word or + // non-word-non-whitespace chars). The visually param controls + // whether, in right-to-left text, direction 1 means to move towards + // the next index in the string, or towards the character to the right + // of the current position. The resulting position will have a + // hitSide=true property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var oldPos = pos; + var origDir = dir; + var lineObj = getLine(doc, pos.line); + var lineDir = visually && doc.direction == "rtl" ? -dir : dir; + function findNextLine() { + var l = pos.line + lineDir; + if (l < doc.first || l >= doc.first + doc.size) { return false } + pos = new Pos(l, pos.ch, pos.sticky); + return lineObj = getLine(doc, l) + } + function moveOnce(boundToLine) { + var next; + if (unit == "codepoint") { + var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1)); + if (isNaN(ch)) { + next = null; + } else { + var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF; + next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir); + } + } else if (visually) { + next = moveVisually(doc.cm, lineObj, pos, dir); + } else { + next = moveLogically(lineObj, pos, dir); + } + if (next == null) { + if (!boundToLine && findNextLine()) + { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); } + else + { return false } + } else { + pos = next; + } + return true + } + + if (unit == "char" || unit == "codepoint") { + moveOnce(); + } else if (unit == "column") { + moveOnce(true); + } else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) { break } + var cur = lineObj.text.charAt(pos.ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" + : group && cur == "\n" ? "n" + : !group || /\s/.test(cur) ? null + : "p"; + if (group && !first && !type) { type = "s"; } + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";} + break + } + + if (type) { sawType = type; } + if (dir > 0 && !moveOnce(!first)) { break } + } + } + var result = skipAtomic(doc, pos, oldPos, origDir, true); + if (equalCursorPos(oldPos, result)) { result.hitSide = true; } + return result + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); + y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; + + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + var target; + for (;;) { + target = coordsChar(cm, x, y); + if (!target.outside) { break } + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break } + y += dir * 5; + } + return target + } + + // CONTENTEDITABLE INPUT STYLE + + var ContentEditableInput = function(cm) { + this.cm = cm; + this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; + this.polling = new Delayed(); + this.composing = null; + this.gracePeriod = false; + this.readDOMTimeout = null; + }; + + ContentEditableInput.prototype.init = function (display) { + var this$1$1 = this; + + var input = this, cm = input.cm; + var div = input.div = display.lineDiv; + div.contentEditable = true; + disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + + function belongsToInput(e) { + for (var t = e.target; t; t = t.parentNode) { + if (t == div) { return true } + if (/\bCodeMirror-(?:line)?widget\b/.test(t.className)) { break } + } + return false + } + + on(div, "paste", function (e) { + if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + // IE doesn't fire input events, so we schedule a read for the pasted content in this way + if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1$1.updateFromDOM(); }), 20); } + }); + + on(div, "compositionstart", function (e) { + this$1$1.composing = {data: e.data, done: false}; + }); + on(div, "compositionupdate", function (e) { + if (!this$1$1.composing) { this$1$1.composing = {data: e.data, done: false}; } + }); + on(div, "compositionend", function (e) { + if (this$1$1.composing) { + if (e.data != this$1$1.composing.data) { this$1$1.readFromDOMSoon(); } + this$1$1.composing.done = true; + } + }); + + on(div, "touchstart", function () { return input.forceCompositionEnd(); }); + + on(div, "input", function () { + if (!this$1$1.composing) { this$1$1.readFromDOMSoon(); } + }); + + function onCopyCut(e) { + if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + if (e.type == "cut") { cm.replaceSelection("", null, "cut"); } + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.operation(function () { + cm.setSelections(ranges.ranges, 0, sel_dontScroll); + cm.replaceSelection("", null, "cut"); + }); + } + } + if (e.clipboardData) { + e.clipboardData.clearData(); + var content = lastCopied.text.join("\n"); + // iOS exposes the clipboard API, but seems to discard content inserted into it + e.clipboardData.setData("Text", content); + if (e.clipboardData.getData("Text") == content) { + e.preventDefault(); + return + } + } + // Old-fashioned briefly-focus-a-textarea hack + var kludge = hiddenTextarea(), te = kludge.firstChild; + cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); + te.value = lastCopied.text.join("\n"); + var hadFocus = activeElt(); + selectInput(te); + setTimeout(function () { + cm.display.lineSpace.removeChild(kludge); + hadFocus.focus(); + if (hadFocus == div) { input.showPrimarySelection(); } + }, 50); + } + on(div, "copy", onCopyCut); + on(div, "cut", onCopyCut); + }; + + ContentEditableInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.div.setAttribute('aria-label', label); + } else { + this.div.removeAttribute('aria-label'); + } + }; + + ContentEditableInput.prototype.prepareSelection = function () { + var result = prepareSelection(this.cm, false); + result.focus = activeElt() == this.div; + return result + }; + + ContentEditableInput.prototype.showSelection = function (info, takeFocus) { + if (!info || !this.cm.display.view.length) { return } + if (info.focus || takeFocus) { this.showPrimarySelection(); } + this.showMultipleSelections(info); + }; + + ContentEditableInput.prototype.getSelection = function () { + return this.cm.display.wrapper.ownerDocument.getSelection() + }; + + ContentEditableInput.prototype.showPrimarySelection = function () { + var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary(); + var from = prim.from(), to = prim.to(); + + if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { + sel.removeAllRanges(); + return + } + + var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); + if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && + cmp(minPos(curAnchor, curFocus), from) == 0 && + cmp(maxPos(curAnchor, curFocus), to) == 0) + { return } + + var view = cm.display.view; + var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) || + {node: view[0].measure.map[2], offset: 0}; + var end = to.line < cm.display.viewTo && posToDOM(cm, to); + if (!end) { + var measure = view[view.length - 1].measure; + var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; + end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]}; + } + + if (!start || !end) { + sel.removeAllRanges(); + return + } + + var old = sel.rangeCount && sel.getRangeAt(0), rng; + try { rng = range(start.node, start.offset, end.offset, end.node); } + catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible + if (rng) { + if (!gecko && cm.state.focused) { + sel.collapse(start.node, start.offset); + if (!rng.collapsed) { + sel.removeAllRanges(); + sel.addRange(rng); + } + } else { + sel.removeAllRanges(); + sel.addRange(rng); + } + if (old && sel.anchorNode == null) { sel.addRange(old); } + else if (gecko) { this.startGracePeriod(); } + } + this.rememberSelection(); + }; + + ContentEditableInput.prototype.startGracePeriod = function () { + var this$1$1 = this; + + clearTimeout(this.gracePeriod); + this.gracePeriod = setTimeout(function () { + this$1$1.gracePeriod = false; + if (this$1$1.selectionChanged()) + { this$1$1.cm.operation(function () { return this$1$1.cm.curOp.selectionChanged = true; }); } + }, 20); + }; + + ContentEditableInput.prototype.showMultipleSelections = function (info) { + removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); + removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); + }; + + ContentEditableInput.prototype.rememberSelection = function () { + var sel = this.getSelection(); + this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset; + this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset; + }; + + ContentEditableInput.prototype.selectionInEditor = function () { + var sel = this.getSelection(); + if (!sel.rangeCount) { return false } + var node = sel.getRangeAt(0).commonAncestorContainer; + return contains(this.div, node) + }; + + ContentEditableInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor") { + if (!this.selectionInEditor() || activeElt() != this.div) + { this.showSelection(this.prepareSelection(), true); } + this.div.focus(); + } + }; + ContentEditableInput.prototype.blur = function () { this.div.blur(); }; + ContentEditableInput.prototype.getField = function () { return this.div }; + + ContentEditableInput.prototype.supportsTouch = function () { return true }; + + ContentEditableInput.prototype.receivedFocus = function () { + var this$1$1 = this; + + var input = this; + if (this.selectionInEditor()) + { setTimeout(function () { return this$1$1.pollSelection(); }, 20); } + else + { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); } + + function poll() { + if (input.cm.state.focused) { + input.pollSelection(); + input.polling.set(input.cm.options.pollInterval, poll); + } + } + this.polling.set(this.cm.options.pollInterval, poll); + }; + + ContentEditableInput.prototype.selectionChanged = function () { + var sel = this.getSelection(); + return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || + sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset + }; + + ContentEditableInput.prototype.pollSelection = function () { + if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return } + var sel = this.getSelection(), cm = this.cm; + // On Android Chrome (version 56, at least), backspacing into an + // uneditable block element will put the cursor in that element, + // and then, because it's not editable, hide the virtual keyboard. + // Because Android doesn't allow us to actually detect backspace + // presses in a sane way, this code checks for when that happens + // and simulates a backspace press in this case. + if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { + this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs}); + this.blur(); + this.focus(); + return + } + if (this.composing) { return } + this.rememberSelection(); + var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var head = domToPos(cm, sel.focusNode, sel.focusOffset); + if (anchor && head) { runInOp(cm, function () { + setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); + if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; } + }); } + }; + + ContentEditableInput.prototype.pollContent = function () { + if (this.readDOMTimeout != null) { + clearTimeout(this.readDOMTimeout); + this.readDOMTimeout = null; + } + + var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary(); + var from = sel.from(), to = sel.to(); + if (from.ch == 0 && from.line > cm.firstLine()) + { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); } + if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) + { to = Pos(to.line + 1, 0); } + if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false } + + var fromIndex, fromLine, fromNode; + if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { + fromLine = lineNo(display.view[0].line); + fromNode = display.view[0].node; + } else { + fromLine = lineNo(display.view[fromIndex].line); + fromNode = display.view[fromIndex - 1].node.nextSibling; + } + var toIndex = findViewIndex(cm, to.line); + var toLine, toNode; + if (toIndex == display.view.length - 1) { + toLine = display.viewTo - 1; + toNode = display.lineDiv.lastChild; + } else { + toLine = lineNo(display.view[toIndex + 1].line) - 1; + toNode = display.view[toIndex + 1].node.previousSibling; + } + + if (!fromNode) { return false } + var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); + var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); + while (newText.length > 1 && oldText.length > 1) { + if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; } + else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; } + else { break } + } + + var cutFront = 0, cutEnd = 0; + var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length); + while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) + { ++cutFront; } + var newBot = lst(newText), oldBot = lst(oldText); + var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), + oldBot.length - (oldText.length == 1 ? cutFront : 0)); + while (cutEnd < maxCutEnd && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) + { ++cutEnd; } + // Try to move start of change to start of selection if ambiguous + if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { + while (cutFront && cutFront > from.ch && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + cutFront--; + cutEnd++; + } + } + + newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); + newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); + + var chFrom = Pos(fromLine, cutFront); + var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); + if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { + replaceRange(cm.doc, newText, chFrom, chTo, "+input"); + return true + } + }; + + ContentEditableInput.prototype.ensurePolled = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.reset = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.forceCompositionEnd = function () { + if (!this.composing) { return } + clearTimeout(this.readDOMTimeout); + this.composing = null; + this.updateFromDOM(); + this.div.blur(); + this.div.focus(); + }; + ContentEditableInput.prototype.readFromDOMSoon = function () { + var this$1$1 = this; + + if (this.readDOMTimeout != null) { return } + this.readDOMTimeout = setTimeout(function () { + this$1$1.readDOMTimeout = null; + if (this$1$1.composing) { + if (this$1$1.composing.done) { this$1$1.composing = null; } + else { return } + } + this$1$1.updateFromDOM(); + }, 80); + }; + + ContentEditableInput.prototype.updateFromDOM = function () { + var this$1$1 = this; + + if (this.cm.isReadOnly() || !this.pollContent()) + { runInOp(this.cm, function () { return regChange(this$1$1.cm); }); } + }; + + ContentEditableInput.prototype.setUneditable = function (node) { + node.contentEditable = "false"; + }; + + ContentEditableInput.prototype.onKeyPress = function (e) { + if (e.charCode == 0 || this.composing) { return } + e.preventDefault(); + if (!this.cm.isReadOnly()) + { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); } + }; + + ContentEditableInput.prototype.readOnlyChanged = function (val) { + this.div.contentEditable = String(val != "nocursor"); + }; + + ContentEditableInput.prototype.onContextMenu = function () {}; + ContentEditableInput.prototype.resetPosition = function () {}; + + ContentEditableInput.prototype.needsContentAttribute = true; + + function posToDOM(cm, pos) { + var view = findViewForLine(cm, pos.line); + if (!view || view.hidden) { return null } + var line = getLine(cm.doc, pos.line); + var info = mapFromLineView(view, line, pos.line); + + var order = getOrder(line, cm.doc.direction), side = "left"; + if (order) { + var partPos = getBidiPartAt(order, pos.ch); + side = partPos % 2 ? "right" : "left"; + } + var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); + result.offset = result.collapse == "right" ? result.end : result.start; + return result + } + + function isInGutter(node) { + for (var scan = node; scan; scan = scan.parentNode) + { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } } + return false + } + + function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos } + + function domTextBetween(cm, from, to, fromLine, toLine) { + var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false; + function recognizeMarker(id) { return function (marker) { return marker.id == id; } } + function close() { + if (closing) { + text += lineSep; + if (extraLinebreak) { text += lineSep; } + closing = extraLinebreak = false; + } + } + function addText(str) { + if (str) { + close(); + text += str; + } + } + function walk(node) { + if (node.nodeType == 1) { + var cmText = node.getAttribute("cm-text"); + if (cmText) { + addText(cmText); + return + } + var markerID = node.getAttribute("cm-marker"), range; + if (markerID) { + var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); + if (found.length && (range = found[0].find(0))) + { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); } + return + } + if (node.getAttribute("contenteditable") == "false") { return } + var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); + if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return } + + if (isBlock) { close(); } + for (var i = 0; i < node.childNodes.length; i++) + { walk(node.childNodes[i]); } + + if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; } + if (isBlock) { closing = true; } + } else if (node.nodeType == 3) { + addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); + } + } + for (;;) { + walk(from); + if (from == to) { break } + from = from.nextSibling; + extraLinebreak = false; + } + return text + } + + function domToPos(cm, node, offset) { + var lineNode; + if (node == cm.display.lineDiv) { + lineNode = cm.display.lineDiv.childNodes[offset]; + if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) } + node = null; offset = 0; + } else { + for (lineNode = node;; lineNode = lineNode.parentNode) { + if (!lineNode || lineNode == cm.display.lineDiv) { return null } + if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break } + } + } + for (var i = 0; i < cm.display.view.length; i++) { + var lineView = cm.display.view[i]; + if (lineView.node == lineNode) + { return locateNodeInLineView(lineView, node, offset) } + } + } + + function locateNodeInLineView(lineView, node, offset) { + var wrapper = lineView.text.firstChild, bad = false; + if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) } + if (node == wrapper) { + bad = true; + node = wrapper.childNodes[offset]; + offset = 0; + if (!node) { + var line = lineView.rest ? lst(lineView.rest) : lineView.line; + return badPos(Pos(lineNo(line), line.text.length), bad) + } + } + + var textNode = node.nodeType == 3 ? node : null, topNode = node; + if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { + textNode = node.firstChild; + if (offset) { offset = textNode.nodeValue.length; } + } + while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; } + var measure = lineView.measure, maps = measure.maps; + + function find(textNode, topNode, offset) { + for (var i = -1; i < (maps ? maps.length : 0); i++) { + var map = i < 0 ? measure.map : maps[i]; + for (var j = 0; j < map.length; j += 3) { + var curNode = map[j + 2]; + if (curNode == textNode || curNode == topNode) { + var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); + var ch = map[j] + offset; + if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; } + return Pos(line, ch) + } + } + } + } + var found = find(textNode, topNode, offset); + if (found) { return badPos(found, bad) } + + // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems + for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { + found = find(after, after.firstChild, 0); + if (found) + { return badPos(Pos(found.line, found.ch - dist), bad) } + else + { dist += after.textContent.length; } + } + for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { + found = find(before, before.firstChild, -1); + if (found) + { return badPos(Pos(found.line, found.ch + dist$1), bad) } + else + { dist$1 += before.textContent.length; } + } + } + + // TEXTAREA INPUT STYLE + + var TextareaInput = function(cm) { + this.cm = cm; + // See input.poll and input.reset + this.prevInput = ""; + + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + this.pollingFast = false; + // Self-resetting timeout for the poller + this.polling = new Delayed(); + // Used to work around IE issue with selection being forgotten when focus moves away from textarea + this.hasSelection = false; + this.composing = null; + }; + + TextareaInput.prototype.init = function (display) { + var this$1$1 = this; + + var input = this, cm = this.cm; + this.createField(display); + var te = this.textarea; + + display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); + + // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) + if (ios) { te.style.width = "0px"; } + + on(te, "input", function () { + if (ie && ie_version >= 9 && this$1$1.hasSelection) { this$1$1.hasSelection = null; } + input.poll(); + }); + + on(te, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + + cm.state.pasteIncoming = +new Date; + input.fastPoll(); + }); + + function prepareCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.setSelections(ranges.ranges, null, sel_dontScroll); + } else { + input.prevInput = ""; + te.value = ranges.text.join("\n"); + selectInput(te); + } + } + if (e.type == "cut") { cm.state.cutIncoming = +new Date; } + } + on(te, "cut", prepareCopyCut); + on(te, "copy", prepareCopyCut); + + on(display.scroller, "paste", function (e) { + if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return } + if (!te.dispatchEvent) { + cm.state.pasteIncoming = +new Date; + input.focus(); + return + } + + // Pass the `paste` event to the textarea so it's handled by its event listener. + var event = new Event("paste"); + event.clipboardData = e.clipboardData; + te.dispatchEvent(event); + }); + + // Prevent normal selection in the editor (we handle our own) + on(display.lineSpace, "selectstart", function (e) { + if (!eventInWidget(display, e)) { e_preventDefault(e); } + }); + + on(te, "compositionstart", function () { + var start = cm.getCursor("from"); + if (input.composing) { input.composing.range.clear(); } + input.composing = { + start: start, + range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"}) + }; + }); + on(te, "compositionend", function () { + if (input.composing) { + input.poll(); + input.composing.range.clear(); + input.composing = null; + } + }); + }; + + TextareaInput.prototype.createField = function (_display) { + // Wraps and hides input textarea + this.wrapper = hiddenTextarea(); + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + this.textarea = this.wrapper.firstChild; + }; + + TextareaInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.textarea.setAttribute('aria-label', label); + } else { + this.textarea.removeAttribute('aria-label'); + } + }; + + TextareaInput.prototype.prepareSelection = function () { + // Redraw the selection and/or cursor + var cm = this.cm, display = cm.display, doc = cm.doc; + var result = prepareSelection(cm); + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)); + } + + return result + }; + + TextareaInput.prototype.showSelection = function (drawn) { + var cm = this.cm, display = cm.display; + removeChildrenAndAdd(display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + this.wrapper.style.top = drawn.teTop + "px"; + this.wrapper.style.left = drawn.teLeft + "px"; + } + }; + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + TextareaInput.prototype.reset = function (typing) { + if (this.contextMenuPending || this.composing) { return } + var cm = this.cm; + if (cm.somethingSelected()) { + this.prevInput = ""; + var content = cm.getSelection(); + this.textarea.value = content; + if (cm.state.focused) { selectInput(this.textarea); } + if (ie && ie_version >= 9) { this.hasSelection = content; } + } else if (!typing) { + this.prevInput = this.textarea.value = ""; + if (ie && ie_version >= 9) { this.hasSelection = null; } + } + }; + + TextareaInput.prototype.getField = function () { return this.textarea }; + + TextareaInput.prototype.supportsTouch = function () { return false }; + + TextareaInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { + try { this.textarea.focus(); } + catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM + } + }; + + TextareaInput.prototype.blur = function () { this.textarea.blur(); }; + + TextareaInput.prototype.resetPosition = function () { + this.wrapper.style.top = this.wrapper.style.left = 0; + }; + + TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); }; + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + TextareaInput.prototype.slowPoll = function () { + var this$1$1 = this; + + if (this.pollingFast) { return } + this.polling.set(this.cm.options.pollInterval, function () { + this$1$1.poll(); + if (this$1$1.cm.state.focused) { this$1$1.slowPoll(); } + }); + }; + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + TextareaInput.prototype.fastPoll = function () { + var missed = false, input = this; + input.pollingFast = true; + function p() { + var changed = input.poll(); + if (!changed && !missed) {missed = true; input.polling.set(60, p);} + else {input.pollingFast = false; input.slowPoll();} + } + input.polling.set(20, p); + }; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + TextareaInput.prototype.poll = function () { + var this$1$1 = this; + + var cm = this.cm, input = this.textarea, prevInput = this.prevInput; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (this.contextMenuPending || !cm.state.focused || + (hasSelection(input) && !prevInput && !this.composing) || + cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) + { return false } + + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) { return false } + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && this.hasSelection === text || + mac && /[\uf700-\uf7ff]/.test(text)) { + cm.display.input.reset(); + return false + } + + if (cm.doc.sel == cm.display.selForContextMenu) { + var first = text.charCodeAt(0); + if (first == 0x200b && !prevInput) { prevInput = "\u200b"; } + if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") } + } + // Find the part of the input that is actually new + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; } + + runInOp(cm, function () { + applyTextInput(cm, text.slice(same), prevInput.length - same, + null, this$1$1.composing ? "*compose" : null); + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1$1.prevInput = ""; } + else { this$1$1.prevInput = text; } + + if (this$1$1.composing) { + this$1$1.composing.range.clear(); + this$1$1.composing.range = cm.markText(this$1$1.composing.start, cm.getCursor("to"), + {className: "CodeMirror-composing"}); + } + }); + return true + }; + + TextareaInput.prototype.ensurePolled = function () { + if (this.pollingFast && this.poll()) { this.pollingFast = false; } + }; + + TextareaInput.prototype.onKeyPress = function () { + if (ie && ie_version >= 9) { this.hasSelection = null; } + this.fastPoll(); + }; + + TextareaInput.prototype.onContextMenu = function (e) { + var input = this, cm = input.cm, display = cm.display, te = input.textarea; + if (input.contextMenuPending) { input.contextMenuPending(); } + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || presto) { return } // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) + { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); } + + var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText; + var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); + input.wrapper.style.cssText = "position: static"; + te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + var oldScrollY; + if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712) + display.input.focus(); + if (webkit) { window.scrollTo(null, oldScrollY); } + display.input.reset(); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) { te.value = input.prevInput = " "; } + input.contextMenuPending = rehide; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (te.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = "\u200b" + (selected ? te.value : ""); + te.value = "\u21da"; // Used to catch context-menu undo + te.value = extval; + input.prevInput = selected ? "" : "\u200b"; + te.selectionStart = 1; te.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + if (input.contextMenuPending != rehide) { return } + input.contextMenuPending = false; + input.wrapper.style.cssText = oldWrapperCSS; + te.style.cssText = oldCSS; + if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); } + + // Try to detect the user choosing select-all + if (te.selectionStart != null) { + if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); } + var i = 0, poll = function () { + if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && + te.selectionEnd > 0 && input.prevInput == "\u200b") { + operation(cm, selectAll)(cm); + } else if (i++ < 10) { + display.detectingSelectAll = setTimeout(poll, 500); + } else { + display.selForContextMenu = null; + display.input.reset(); + } + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + + if (ie && ie_version >= 9) { prepareSelectAllHack(); } + if (captureRightClick) { + e_stop(e); + var mouseup = function () { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + }; + + TextareaInput.prototype.readOnlyChanged = function (val) { + if (!val) { this.reset(); } + this.textarea.disabled = val == "nocursor"; + this.textarea.readOnly = !!val; + }; + + TextareaInput.prototype.setUneditable = function () {}; + + TextareaInput.prototype.needsContentAttribute = false; + + function fromTextArea(textarea, options) { + options = options ? copyObj(options) : {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabIndex) + { options.tabindex = textarea.tabIndex; } + if (!options.placeholder && textarea.placeholder) + { options.placeholder = textarea.placeholder; } + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + + var realSubmit; + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form; + realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function () { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + options.finishInit = function (cm) { + cm.save = save; + cm.getTextArea = function () { return textarea; }; + cm.toTextArea = function () { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == "function") + { textarea.form.submit = realSubmit; } + } + }; + }; + + textarea.style.display = "none"; + var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); }, + options); + return cm + } + + function addLegacyProps(CodeMirror) { + CodeMirror.off = off; + CodeMirror.on = on; + CodeMirror.wheelEventPixels = wheelEventPixels; + CodeMirror.Doc = Doc; + CodeMirror.splitLines = splitLinesAuto; + CodeMirror.countColumn = countColumn; + CodeMirror.findColumn = findColumn; + CodeMirror.isWordChar = isWordCharBasic; + CodeMirror.Pass = Pass; + CodeMirror.signal = signal; + CodeMirror.Line = Line; + CodeMirror.changeEnd = changeEnd; + CodeMirror.scrollbarModel = scrollbarModel; + CodeMirror.Pos = Pos; + CodeMirror.cmpPos = cmp; + CodeMirror.modes = modes; + CodeMirror.mimeModes = mimeModes; + CodeMirror.resolveMode = resolveMode; + CodeMirror.getMode = getMode; + CodeMirror.modeExtensions = modeExtensions; + CodeMirror.extendMode = extendMode; + CodeMirror.copyState = copyState; + CodeMirror.startState = startState; + CodeMirror.innerMode = innerMode; + CodeMirror.commands = commands; + CodeMirror.keyMap = keyMap; + CodeMirror.keyName = keyName; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.lookupKey = lookupKey; + CodeMirror.normalizeKeyMap = normalizeKeyMap; + CodeMirror.StringStream = StringStream; + CodeMirror.SharedTextMarker = SharedTextMarker; + CodeMirror.TextMarker = TextMarker; + CodeMirror.LineWidget = LineWidget; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + CodeMirror.e_stop = e_stop; + CodeMirror.addClass = addClass; + CodeMirror.contains = contains; + CodeMirror.rmClass = rmClass; + CodeMirror.keyNames = keyNames; + } + + // EDITOR CONSTRUCTOR + + defineOptions(CodeMirror); + + addEditorMethods(CodeMirror); + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); + for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + { CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments)} + })(Doc.prototype[prop]); } } + + eventMixin(Doc); + CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function(name/*, mode, …*/) { + if (!CodeMirror.defaults.mode && name != "null") { CodeMirror.defaults.mode = name; } + defineMode.apply(this, arguments); + }; + + CodeMirror.defineMIME = defineMIME; + + // Minimal default mode. + CodeMirror.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); }); + CodeMirror.defineMIME("text/plain", "null"); + + // EXTENSIONS + + CodeMirror.defineExtension = function (name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function (name, func) { + Doc.prototype[name] = func; + }; + + CodeMirror.fromTextArea = fromTextArea; + + addLegacyProps(CodeMirror); + + CodeMirror.version = "5.65.0"; + + return CodeMirror; + +}))); +}(codemirror)); + +var CodeMirror = codemirror.exports; + +/** + * The view used for plaintext files. Uses a CodeMirror 5 instance. + * Perhaps this can be updated to CodeMirror 6 in the future. + * + * @author dbarenholz + * @version 0.1.0 + */ +class PlaintextView extends obsidian.TextFileView { + // Constructor + constructor(leaf) { + // Call super + super(leaf); + /** + * Event handler for CodeMirror editor. + * Requests a save. + * + * @param _ unused + * @param __ unused + */ + this.changed = (_, __) => __awaiter(this, void 0, void 0, function* () { + this.requestSave(); + }); + /** + * Getter for the data in the view. + * Called when saving the contents. + * + * @returns The file contents as string. + */ + this.getViewData = () => { + return this.cm.getValue(); + }; + /** + * Setter for the data in the view. + * Called when loading file contents. + * + * If clear is set, then it means we're opening a completely different file. + * In that case, you should call clear(), or implement a slightly more efficient + * clearing mechanism given the new data to be set. + * + * @param data + * @param clear + */ + this.setViewData = (data, clear) => { + if (clear) { + this.cm.swapDoc(CodeMirror.Doc(data, "text/plain")); // everything is plaintext + } + else { + this.cm.setValue(data); + } + }; + /** + * Clears the current codemirror instance. + */ + this.clear = () => { + this.cm.setValue(""); + this.cm.clearHistory(); + }; + // Create code mirror instance and add listener to it. + this.cm = CodeMirror(this.contentEl); + this.cm.on("changes", this.changed); + } + /** + * Event handler for resizing a view. + * Refreshes codemirror instance. + */ + onResize() { + this.cm.refresh(); + } + /** + * Provides a boolean to indicate if a particular extension can be opened in this instance. + * + * @param extension the extension to check + * @returns `true` if `extension` is identical to `this.ext`, `false` otherwise. + */ + canAcceptExtension(extension) { + return extension == this.file.extension; + } + /** + * Returns the viewtype of this codemirror instance. + * The viewtype is the extension of the file that is opened. + * + * @returns The viewtype (file extension) of this codemirror instance. + */ + getViewType() { + return this.file ? this.file.extension : "text/plain (no file)"; + } + /** + * Returns a string indicating which file is currently open, if any. + * If no file is open, returns that. + * + * @returns A string indicating the opened file, if any. + */ + getDisplayText() { + return this.file ? this.file.basename : "text/plain (no file)"; + } +} + +/** + * Plaintext plugin. + * + * Allows you to edit files with specified extensions as if they are plaintext files. + * There are _absolutely no_ checks to see whether or not you should actually do so. + * + * Use common sense, and don't edit `.exe` or similar binaries. + * + * @author dbarenholz + * @version 0.2.0 + */ +class PlaintextPlugin extends obsidian.Plugin { + constructor() { + super(...arguments); + /** + * Creates a view for a plaintext file. + * + * @param leaf The leaf to create the view at + * @returns Plaintext view + */ + this.viewCreator = (leaf) => { + return new PlaintextView(leaf); + }; + /** + * Processes the list of extensions that the user inputs, and removes conflicting ones that should not be added. + * + * @param exts Extensions that are about to be added. + * @returns A finalised list of exts to add. + */ + this.processConflictingExtensions = (exts) => { + exts = removeObsidianExtensions(exts); + if (!this.settings.destroyOtherPlugins) { + exts = removeOtherExtensions(exts); + } + return exts; + }; + /** + * Registers extensions, and makes views for them. + * + * @param exts The extensions to register and add views for. + */ + this.addExtensions = (exts) => { + // Process extensions that may conflict with Obsidian or enabled plugins + exts = this.processConflictingExtensions(exts); + // Loop through extensions + exts.forEach((ext) => { + // Try to register view + try { + this.registerView(ext, this.viewCreator); + } + catch (_a) { + console.log(`[Plaintext]: Extension '${ext}' already has a view registered, ignoring...`); + } + // Try to register extension + try { + // Note: viewtype is set to 'ext' here for possible future expansion to include syntax highlighting based on extension type. + this.registerExtensions([ext], ext); + } + catch (_b) { + console.log(`[Plaintext]: Extension '${ext}' is already registered, ignoring...`); + } + // DEBUG + console.log(`[Plaintext]: added=${ext}`); + }); + }; + /** + * Deregisters extensions, and removes views made for them. + * + * @param exts The extensions to deregister and remove views for. + */ + this.removeExtensions = (exts) => { + // Process extensions that may conflict with Obsidian or enabled plugins + exts = this.processConflictingExtensions(exts); + // Try to deregister the views + exts.forEach((ext) => { + // Before unregistering the view: close active leaf if of type ext + // Thank you Licat#1607: activeLeaf could be null here causing a crash => Replaced with getActiveViewOfType + const view = this.app.workspace.getActiveViewOfType(PlaintextView); + if (view && ext == view.getViewType()) { + this.app.workspace.activeLeaf.detach(); + } + try { + this.app.viewRegistry.unregisterView(ext); + } + catch (_a) { + console.log(`[Plaintext]: View for extension '${ext}' cannot be deregistered...`); + } + }); + // Try to deregister the extensions + try { + this.app.viewRegistry.unregisterExtensions(exts); + } + catch (_a) { + console.log(`[Plaintext]: Cannot deregister extensions...`); + } + // DEBUG + console.log(`[Plaintext]: removed=${exts}`); + }; + } + /** + * Code that runs (once) when plugin is loaded. + */ + onload() { + return __awaiter(this, void 0, void 0, function* () { + console.log("[Plaintext]: loaded plugin."); + // Load the settings + yield this.loadSettings(); + // Add settings tab + this.addSettingTab(new PlaintextSettingTab(this.app, this)); + // Add extensions that we need to add. + this.addExtensions(this.settings.extensions); + }); + } + /** + * Code that runs (once) when the plugin is unloaded. + */ + onunload() { + this.removeExtensions(this.settings.extensions); + console.log("[Plaintext]: unloaded plugin."); + } + /** + * Loads the settings. + */ + loadSettings() { + return __awaiter(this, void 0, void 0, function* () { + this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + }); + } + /** + * Saves the settings. + */ + saveSettings() { + return __awaiter(this, void 0, void 0, function* () { + yield this.saveData(this.settings); + }); + } +} + +module.exports = PlaintextPlugin; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9oZWxwZXIudHMiLCJzcmMvc2V0dGluZ3MudHMiLCJub2RlX21vZHVsZXMvY29kZW1pcnJvci9saWIvY29kZW1pcnJvci5qcyIsInNyYy92aWV3LnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIiwidGhpcyIsInRoaXMkMSIsIlRleHRGaWxlVmlldyIsIlBsdWdpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxD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SyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRTtBQUN2RCxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFO0FBQ2xDLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFO0FBQ2hDLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNuRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoRCxJQUFJLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO0FBQzNDLE1BQU0sSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFO0FBQzdFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxH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QUUsSUFBSSxHQUFHLFNBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQzVELFFBQVEsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLFFBQVEsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFO0FBQy9DLGFBQWEsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7QUFDN0IsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFNBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQzNELFFBQVEsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLFFBQVEsSUFBSSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDOUQsYUFBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUU7QUFDbEcsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQ2pFLFFBQVEsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLFFBQVEsSUFBSSxNQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDeEYsYUFBYSxJQUFJLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hELGtCQUFrQixNQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRTtBQUMzRSxRQUFRLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDeEIsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUU7QUFDMUMsUUFBUSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsUUFBUSxJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDaEQsYUFBYSxJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUU7QUFDaEMsVUFBVSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdCLFVBQVUsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUN2RSxVQUFVLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDckcsVUFBVSxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFO0FBQ2pFLFVBQVUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQzdELFFBQVEsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLFFBQVEsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDaEUsYUFBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUU7QUFDM0QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQzFDLFFBQVEsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3hDLFVBQVUsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMvQixVQUFVLEtBQUssS0FBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDeEYsVUFBVSxJQUFJLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsS0FBSyxHQUFHLENBQUM7QUFDL0QsVUFBVSxJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFNBQVMsS0FBSyxHQUFHLENBQUM7QUFDdEUsVUFBVSxJQUFJLFNBQVMsR0FBRyxNQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLFNBQVMsQ0FBQztBQUM3RSxVQUFVLEtBQUssSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUU7QUFDN0UsVUFBVSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMxQixTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QixNQUFNLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFDcEMsUUFBUSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDM0MsVUFBVSxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDMUIsVUFBVSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQzNFLFVBQVUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEQsU0FBUyxNQUFNO0FBQ2YsVUFBVSxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLFNBQVMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvRSxVQUFVLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7QUFDL0QsVUFBVSxLQUFLLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHO0FBQzFDLFlBQVksSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQzlDLGNBQWMsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRTtBQUM3RixjQUFjLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUMvQixjQUFjLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7QUFDOUUsY0FBYyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQztBQUMxQixjQUFjLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDeEIsYUFBYSxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtBQUM3QixXQUFXO0FBQ1gsVUFBVSxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDNUUsU0FBUztBQUNULE9BQU87QUFDUCxNQUFNLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRTtBQUM5QixRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtBQUM1RCxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxVQUFVLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN6RCxTQUFTO0FBQ1QsUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDOUQsVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDdkMsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlELFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSxNQUFNLE9BQU8sU0FBUyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSztBQUN6RCxLQUFLO0FBQ0wsR0FBRyxHQUFHLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtBQUNyQyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDM0IsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFO0FBQ25GLElBQUksT0FBTyxLQUFLO0FBQ2hCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN0QjtBQUNBLEVBQUUsSUFBSSxFQUFFLEdBQUcsU0FBUyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtBQUN0QyxJQUFJLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFO0FBQ2xDLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0MsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtBQUNwQyxNQUFNLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQyxLQUFLLE1BQU07QUFDWCxNQUFNLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEtBQUssT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUM5RCxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsU0FBUyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUN0QyxJQUFJLE9BQU8sT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVU7QUFDckUsR0FBRztBQUNIO0FBQ0EsRUFBRSxTQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtBQUNqQyxJQUFJLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFO0FBQ3JDLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEQsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtBQUNwQyxNQUFNLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQyxLQUFLLE1BQU07QUFDWCxNQUFNLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUQsTUFBTSxJQUFJLEdBQUcsRUFBRTtBQUNmLFFBQVEsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwQyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN0QixVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDM0UsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLGtCQUFrQjtBQUNqRCxJQUFJLElBQUksUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUNwQyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEQsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDaEYsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRTtBQUMzQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksUUFBUTtBQUM1QixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUN0RixJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFDLElBQUksT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCO0FBQ3RELEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUU7QUFDcEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0FBQzFELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUN4QixJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN4RixJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6RSxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDN0IsR0FBRztBQUNIO0FBQ0EsRUFBRSxTQUFTLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQ3JDLElBQUksT0FBTyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO0FBQ2hELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRTtBQUM1QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFO0FBQy9CLElBQUksSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUU7QUFDakQsU0FBUyxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEVBQUU7QUFDbkMsR0FBRztBQUNILEVBQUUsU0FBUyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUU7QUFDaEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRTtBQUNuRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRTtBQUNuQyxHQUFHO0FBQ0gsRUFBRSxTQUFTLGtCQUFrQixDQUFDLENBQUMsRUFBRTtBQUNqQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBSSxLQUFLO0FBQ25GLEdBQUc7QUFDSCxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRTtBQUNBLEVBQUUsU0FBUyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDeEQsRUFBRSxTQUFTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdkIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO0FBQ25CLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUNsQyxXQUFXLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDdkMsV0FBVyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3ZDLEtBQUs7QUFDTCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUM5QyxJQUFJLE9BQU8sQ0FBQztBQUNaLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRSxJQUFJLFdBQVcsR0FBRyxXQUFXO0FBQy9CO0FBQ0E7QUFDQSxJQUFJLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLEtBQUssRUFBRTtBQUM5QyxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QixJQUFJLE9BQU8sV0FBVyxJQUFJLEdBQUcsSUFBSSxVQUFVLElBQUksR0FBRztBQUNsRCxHQUFHLEVBQUUsQ0FBQztBQUNOO0FBQ0EsRUFBRSxJQUFJLGFBQWEsQ0FBQztBQUNwQixFQUFFLFNBQVMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO0FBQ3JDLElBQUksSUFBSSxhQUFhLElBQUksSUFBSSxFQUFFO0FBQy9CLE1BQU0sSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkYsTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUM7QUFDOUMsUUFBUSxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUN0RyxLQUFLO0FBQ0wsSUFBSSxJQUFJLElBQUksR0FBRyxhQUFhLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7QUFDcEQsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsdURBQXVELENBQUMsQ0FBQztBQUMzRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLElBQUksT0FBTyxJQUFJO0FBQ2YsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLElBQUksWUFBWSxDQUFDO0FBQ25CLEVBQUUsU0FBUyxlQUFlLENBQUMsT0FBTyxFQUFFO0FBQ3BDLElBQUksSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxZQUFZLEVBQUU7QUFDckQsSUFBSSxJQUFJLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLElBQUksSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztBQUN0RCxJQUFJLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7QUFDdEQsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUIsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFO0FBQ3BELElBQUksT0FBTyxZQUFZLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNuRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsVUFBVSxNQUFNLEVBQUU7QUFDM0UsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUNoRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRTtBQUNyQixNQUFNLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLE1BQU0sSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQzNDLE1BQU0sSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDaEYsTUFBTSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLE1BQU0sSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDcEIsUUFBUSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkMsUUFBUSxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN0QixPQUFPLE1BQU07QUFDYixRQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsUUFBUSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyQixPQUFPO0FBQ1AsS0FBSztBQUNMLElBQUksT0FBTyxNQUFNO0FBQ2pCLEdBQUcsR0FBRyxVQUFVLE1BQU0sRUFBRSxFQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDN0Q7QUFDQSxFQUFFLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEdBQUcsVUFBVSxFQUFFLEVBQUU7QUFDekQsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUU7QUFDdkQsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFO0FBQzdCLEdBQUcsR0FBRyxVQUFVLEVBQUUsRUFBRTtBQUNwQixJQUFJLElBQUksS0FBSyxDQUFDO0FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDM0QsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFO0FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQUssRUFBRTtBQUMvRCxJQUFJLE9BQU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzNELEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxJQUFJLFlBQVksR0FBRyxDQUFDLFlBQVk7QUFDbEMsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsSUFBSSxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRTtBQUN0QyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hDLElBQUksT0FBTyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksVUFBVTtBQUN4QyxHQUFHLEdBQUcsQ0FBQztBQUNQO0FBQ0EsRUFBRSxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDNUIsRUFBRSxTQUFTLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtBQUN0QyxJQUFJLElBQUksY0FBYyxJQUFJLElBQUksRUFBRSxFQUFFLE9BQU8sY0FBYyxFQUFFO0FBQ3pELElBQUksSUFBSSxJQUFJLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvRCxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQzlDLElBQUksSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztBQUM5RCxJQUFJLE9BQU8sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUN0RSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDbEMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztBQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDdkUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNsQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDM0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxXQUFXLENBQUMsSUFBSSxFQUFFO0FBQzdCLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNuRSxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDNUYsTUFBTSxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUM5RCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzdCLEtBQUssTUFBTSxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDaEYsTUFBTSxPQUFPLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztBQUMzQyxLQUFLLE1BQU0sSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ2pGLE1BQU0sT0FBTyxXQUFXLENBQUMsa0JBQWtCLENBQUM7QUFDNUMsS0FBSztBQUNMLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO0FBQ3hELFNBQVMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRTtBQUMxQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQ2xDLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixJQUFJLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO0FBQzVELElBQUksSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMxQyxJQUFJLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDbEQsTUFBTSxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNDLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7QUFDN0IsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUNwRCxRQUFRLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbEYsUUFBUSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25DLE9BQU87QUFDUCxLQUFLO0FBQ0wsSUFBSSxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDN0IsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUNsRSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVM7QUFDM0QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNyRDtBQUNBLElBQUksT0FBTyxPQUFPO0FBQ2xCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQixFQUFFLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDeEMsSUFBSSxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDeEcsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNsQyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFO0FBQ3hDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3hELElBQUksSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekIsTUFBTSxJQUFJLEdBQUcsWUFBWSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ3pELE1BQU0sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN0QixLQUFLO0FBQ0wsSUFBSSxPQUFPLE1BQU07QUFDakIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNsQyxJQUFJLElBQUksSUFBSSxDQUFDO0FBQ2IsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUU7QUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUU7QUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN6QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLEtBQUs7QUFDTCxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0FBQzdDLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDcEMsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSTtBQUMzRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLFlBQVksR0FBRyxTQUFTLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO0FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDO0FBQ2hDLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztBQUNsRCxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFDakMsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuRixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9FLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0FBQy9GLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsWUFBWTtBQUM1QyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07QUFDckMsTUFBTSxFQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUU7QUFDL0MsR0FBRyxDQUFDO0FBQ0osRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFVLEtBQUssRUFBRTtBQUNoRCxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ1gsSUFBSSxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUU7QUFDdkQsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDbEUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ25DLEdBQUcsQ0FBQztBQUNKLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxLQUFLLEVBQUU7QUFDckQsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ3pCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDN0IsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSztBQUMzQixHQUFHLENBQUM7QUFDSixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFlBQVk7QUFDaEQsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ3pCLElBQUksT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDM0UsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSztBQUMzQixHQUFHLENBQUM7QUFDSixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNsRixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFO0FBQ2hELElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsRCxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztBQUNuRCxHQUFHLENBQUM7QUFDSixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBWTtBQUM5QyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFO0FBQ3pDLE1BQU0sSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDMUgsTUFBTSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDdEMsS0FBSztBQUNMLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9HLEdBQUcsQ0FBQztBQUNKLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsWUFBWTtBQUNuRCxJQUFJLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRixHQUFHLENBQUM7QUFDSixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFVBQVUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUU7QUFDOUUsSUFBSSxJQUFJLE9BQU8sT0FBTyxJQUFJLFFBQVEsRUFBRTtBQUNwQyxNQUFNLElBQUksS0FBSyxHQUFHLFVBQVUsR0FBRyxFQUFFLEVBQUUsT0FBTyxlQUFlLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDdkYsTUFBTSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRSxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUMzQyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQzlELFFBQVEsT0FBTyxJQUFJO0FBQ25CLE9BQU87QUFDUCxLQUFLLE1BQU07QUFDWCxNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0QsTUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFO0FBQ25ELE1BQU0sSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQ3RFLE1BQU0sT0FBTyxLQUFLO0FBQ2xCLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0YsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDOUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztBQUN4QixJQUFJLElBQUksRUFBRSxPQUFPLEtBQUssRUFBRSxFQUFFO0FBQzFCLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ3BDLEdBQUcsQ0FBQztBQUNKLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEVBQUU7QUFDbEQsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQ2pDLElBQUksT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDeEMsR0FBRyxDQUFDO0FBQ0osRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZO0FBQ2pELElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztBQUNqQyxJQUFJLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUMvQyxHQUFHLENBQUM7QUFDSjtBQUNBO0FBQ0EsRUFBRSxTQUFTLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFO0FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7QUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsRUFBRTtBQUNoSCxJQUFJLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNwQixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0FBQ3pCLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUU7QUFDNUIsUUFBUSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDOUQsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFO0FBQzVDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNoQixPQUFPO0FBQ1AsS0FBSztBQUNMLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN2QyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztBQUNqQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxVQUFVLElBQUksRUFBRTtBQUN2RCxNQUFNLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDM0IsTUFBTSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQzFELE1BQU0sSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQzNELE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ1YsS0FBSyxDQUFDLENBQUM7QUFDUCxJQUFJLE9BQU8sR0FBRztBQUNkLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDakIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRSxJQUFJLE9BQU8sR0FBRztBQUNkLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUMxQyxJQUFJLElBQUksSUFBSSxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3BDLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7QUFDM0UsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxNQUFNLENBQUMsSUFBSSxFQUFFO0FBQ3hCLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFO0FBQzVDLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekQsSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7QUFDM0UsTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRTtBQUM1QixRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUU7QUFDL0MsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUM1QyxPQUFPO0FBQ1AsS0FBSztBQUNMLElBQUksT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUs7QUFDekIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtBQUNsQyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDeEIsSUFBSSxLQUFLLEVBQUUsR0FBRztBQUNkLE1BQU0sS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQzVELFFBQVEsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUMzRCxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRTtBQUNyRCxRQUFRLENBQUMsSUFB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R0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9GLEVBQUUsU0FBUyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM3QixJQUFJLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRTtBQUMxRCxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQzdFLElBQUksT0FBTyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDN0QsR0FBRztBQUNILEVBQUUsU0FBUyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRTtBQUNuQyxJQUFJLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDcEIsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDckUsU0FBUyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxH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QyxDQUFDLENBQUM7QUFDdkUsVUFBVSxFQUFFLENBQUMsT0FBTyxLQUFLLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNyRCxPQUFPLEVBQUU7QUFDVCxLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFO0FBQ2pDLElBQUksSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkMsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtBQUM3QyxNQUFNLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO0FBQzdDLFFBQVEsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUU7QUFDeEUsUUFBUSxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFD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QUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDbkQsVUFBVSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEQsVUFBVSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUNwRCxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDckUsU0FBUztBQUNULE9BQU87QUFDUCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0MsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7QUFDbEQsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSTtBQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMzRSxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtBQUN2QixNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7QUFDbkQsUUFBUSxFQUFFLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJ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QU8sTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckMsT0FBTztBQUNQO0FBQ0EsTUFBTSxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsT0FBTyxHQUFHLEtBQUssRUFBRSxVQUFVLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtBQUM1RyxRQUFRLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUM7QUFDL0IsUUFBUSxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDM0QsUUFBUSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQzNEO0FBQ0EsUUFBUSxJQUFJLFNBQVMsR0FBRyxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQztBQUMvRixRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNuRSxRQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRTtBQUMxQyxVQUFVLElBQUksUUFBUSxHQUFHLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDO0FBQ2pFLFVBQVUsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEdBQUcs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QUFRLENBQUMsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7QUFDeEcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDaEQsSUFBSSxJQUFJLE1BQU0sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDNUc7QUFDQSxJQUFJLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEU7QUFDQTtBQUNBLElBQUksSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUNyQyxNQUFNLElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ3JGLE1BQU0sSUFBSSxVQUFVLEdBQUcsSUFBSSxFQUFFO0FBQzdCLFFBQVEsSUFBSSxHQUFHLFVBQVUsQ0FBQztBQUMxQixRQUFRLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN0RyxPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7QUFDM0QsUUFBUSxJ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QUFNLEVBQUUsQ0FBQyxFQUFFO0FBQy9DLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7QUFDdEQsSUFBSSxPQUFPLEtBQUs7QUFDaEIsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDNUIsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDakQsTUFBTSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDbEUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFO0FBQ3BCLEtBQUs7QUFDTCxJQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLElBQUksS0FBSyxHQUFHLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRTtBQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0MsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFlBQVksRUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQy9FLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDN0UsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxZQUFZLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ3RIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0FBQ3JELElBQUksSUFBSSxRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDdkQsSUFBSSxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyRSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RDLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDaEQsTUFBTSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLE1BQU0sSUFBSSxRQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFO0FBQzNELFFBQVEsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyRixRQUFRLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztBQUNuRixRQUFRLElBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7QUFDNUMsUUFBUSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0UsT0FBTztBQUNQLEtBQUs7QUFDTCxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztBQUMzQyxHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDekMsSUFBSSxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNoRSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUU7QUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sTUFBTSxDQUFDLEVBQUUsRUFBRTtBQUMxQyxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7QUFDeEQsZUFBZSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDeEYsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxlQUFlLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRTtBQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUU7QUFDakQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQzlEO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQ3BHLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFF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QUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25GLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxPQUFPO0FBQ1AsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDakMsTUFBTSxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsS0FBSyxNQUFNO0FBQ1gsTUFBTSxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLE1BQU0sTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELE1BQU0sSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNoRSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekMsS0FBSztBQUNMO0FBQ0EsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFO0FBQzlDLElBQUksU0FBUyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDOUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDcEUsUUFBUSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUN6QyxRQUFRLElBQUksTUFBTSxHQUFHLFVBQVUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDO0FBQ2xELFFBQVEsSUFBSSxjQUFjLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUU7QUFDbkQsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzQixRQUFRLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QyxPQUFPLEVBQUU7QUFDVCxLQUFLO0FBQ0wsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvQixHQUFHO0FBQ0g7QUFDQTtBQUNBLEVBQUUsU0FBUyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtBQUM5QixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBRTtBQUN2RSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDaEIsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1QixJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqQixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzFCLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztBQUN6QyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ3RELElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztBQUNyQyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQixHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsaUJBQWlCLENBQUMsRUFBRSxFQUFFO0FBQ2pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxLQUFLLEdBQUcsUUFBUSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3pGLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7QUFDaEMsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLFlBQVk7QUFDNUIsTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1QixNQUFNLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNwQixLQUFLLENBQUMsQ0FBQztBQUNQLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0FBQ3REO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztBQUNoRDtBQUNBLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN6RSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUU7QUFDaEQsSUFBSSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN4SCxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUUsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUUsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5SCxJQUFJLE9BQU8sVUFBVTtBQUNyQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLG9CQUFvQixDQUFDLEtBQUssRUFBRTtBQUN2QyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRTtBQUN6QixNQUFNLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFO0FBQ3ZDLFdBQVcsRUFBRSxLQUFLLEVBQUU7QUFDcEIsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7QUFDeEMsSUFBSSxJQUFJLEtBQUssRUFBRTtBQUNmLE1BQU0sb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO0FBQzNELE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtBQUNoRixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzNCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO0FBQzNELElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztBQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUMzQixJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQzlCLElBQUksSUFBSSxJQUFJLENBQUM7QUFDYjtBQUNBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtBQUM1QixTQUFTLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtBQUMxRCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQ3hILFVBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ3pDLFNBQVMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQzVEO0FBQ0EsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQzlFO0FBQ0E7QUFDQSxRQUFRLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BDLE9BQU8sTUFBTTtBQUNiO0FBQ0EsUUFBUSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMvRCxPQUFPO0FBQ1AsS0FBSyxNQUFNO0FBQ1g7QUFDQSxNQUFNLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsTUFBTSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07QUFDbkMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDdkQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUQsYUFBYSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsTUFBTSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7QUFDaEQsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzFCLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQ3hELE9BQU87QUFDUCxLQUFLO0FBQ0wsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDO0FBQzNDLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDeEMsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUN6RDtBQUNBLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsRUFBRTtBQUMvQyxHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMseUJBQXlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO0FBQzdELElBQUksSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixJQUFJLE9BQU8sRUFBRSxJQUFJLEdBQUc7QUFDcEIsTUFBTSxFQUFFLElBQUksR0FBRztBQUNmLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNO0FBQzdDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFO0FBQ3pELE1BQU0sSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDN0YsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMscUJBQXFCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQzFELElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVM7QUFDOUIsU0FBUyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNO0FBQy9DLFVBQVUsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTTtBQUMzRSxVQUFVLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFO0FBQ2hEO0FBQ0EsTUFBTSxFQUFFLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNqRDtBQUNBLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztBQUMxQixJQUFJLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssS0FBSztBQUM5QyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDNUMsR0FBRztBQUNIO0FBQ0EsRUFBRSxTQUFTLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDN0MsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEIsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3pCLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRSxTQUFTLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNuRCxJQUFJLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEQsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLElBQUksRUFBRTtBQUM1RixNQUFNLElBQUksSUFBSSxDQUFDLFdBQVc7QUFDMUIsUUFBUSxFQUFFLENBQUMsUUFBUSxLQUFLLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7QUFDNUYsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNWLEtBQUssQ0FBQyxDQUFDO0FBQ1AsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUU7QUFDL0IsSUFBSSxJQUFJLEdBQUcsQ0FBQztBQUNaLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN2RixXQUFXLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzNDLEtBQUs7QUFDTCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUk7QUFDakQsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUU7QUFDcEMsSUFBSSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMxQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRTtBQUMvQixJQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNoQixJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7QUFDL0MsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ2hELElBQUksT0FBTyxFQUFFO0FBQ2IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUU7QUFDdEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLElBQUksSUFBSSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sU0FBUyxFQUFFO0FBQ2xDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFO0FBQ2xDO0FBQ0EsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtBQUN6QyxNQUFNLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELE1BQU0sSUFBSSxNQUFNLElBQUksVUFBVSxFQUFFO0FBQ2hDLFFBQVEsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO0FBQzNELFVBQVUsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLFVBQVUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0FBQ2hELFlBQVksRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsS0FBSyxFQUFFLEVBQUU7QUFDdkUsVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLFNBQVM7QUFDVCxPQUFPLE1BQU0sSUFBSSxVQUFVLEVBQUU7QUFDN0IsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE9BQU87QUFDUCxLQUFLO0FBQ0wsSUFBSSxPQUFPLEdBQUc7QUFDZCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFO0FBQzlELElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDNUMsTUFBTSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7QUFDeEIsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDckYsUUFBUSxRQUFRO0FBQ2hCLE9BQU87QUFDUCxNQUFNLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUNuRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN2QyxNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO0FBQy9DLFFBQVEsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzlDLFFBQVEsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMvRSxRQUFRLElBQUksUUFBUSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFO0FBQ3hGLFVBQVUsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3BELFlBQVksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCxZQUFZLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hDLFdBQVc7QUFDWCxTQUFTLEVBQUUsRUFBRTtBQUNiLE9BQU87QUFDUCxLQUFLO0FBQ0wsSUFBSSxPQUFPLElBQUk7QUFDZixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDbkQsSUFBSSxJQUFJLE1BQU0sRUFBRTtBQUNoQixNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDaEMsTUFBTSxJQUFJLEtBQUssRUFBRTtBQUNqQixRQUFRLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlDLFFBQVEsSUFBSSxTQUFTLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUNuRCxVQUFVLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDeEIsVUFBVSxJQUFJLEdBQUcsS0FBSyxDQUFDO0FBQ3ZCLFNBQVMsTUFBTSxJQUFJLFNBQVMsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3hELFVBQVUsSUFBSSxHQUFHLEtBQUssQ0FBQztBQUN2QixTQUFTO0FBQ1QsT0FBTztBQUNQLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0FBQ3BDLEtBQUssTUFBTTtBQUNYLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLElBQUksQ0FBQztBQUMzQyxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLFNBQVMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDOUQsSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDcEYsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hHLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7QUFDakQsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDakIsSUFBSSxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEUsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtBQUNsRCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDMUUsSUFBSSxJQUFJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3BFLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLFNBQVMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ3ZELElBQUksSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0RixHQUFHO0FBQ0g7QUFDQTtBQUNBLEVBQUUsU0FBUyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDMUQsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRTtBQUNwRCxJQUFJLElBQUksR0FBRyxHQUFHO0FBQ2QsTUFBTSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07QUFDeEIsTUFBTSxNQUFNLEVBQUUsU0FBUyxNQUFNLEVBQUU7QUFDL0IsUUFBUSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN6QixRQUFRLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtBQUM5QyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDckUscUNBQXFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNyRSxPQUFPO0FBQ1AsTUFBTSxNQUFNLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNO0FBQ3ZDLEtBQUssQ0FBQztBQUNOLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbkQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDekUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQzFHLFNBQVMsRUFBRSxPQUFPLEdBQUcsRUFBRTtBQUN2QixHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7QUFDekQsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUM3QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNsQyxNQUFNLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUMsS0FBSyxNQUFNO0FBQ1gsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0QyxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLFNBQVMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFO0FBQzNDLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRixHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7QUFDakQsSUFBSSxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLHVCQUF1QixDQUFDO0FBQ3pHLE1BQU0sRUFBRSxHQUFHLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFO0FBQ3pEO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUk7QUFDdEMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRSxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3hFO0FBQ0EsSUFBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVO0FBQ3RHLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUN0QyxHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUN2QyxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDdkM7QUFDQSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2xCO0FBQ0EsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7QUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQzNDLE1BQU0sb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ25DLEtBQUs7QUFDTCxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDNUMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7QUFDakMsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDN0UsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDM0QsSUFBSSxJQUFJLEdBQUcsQ0FBQztBQUNaLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2hELE1BQU0sSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQyxNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixNQUFNLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkYsTUFBTSxJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2pGLE1BQU0sSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7QUFDckUsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ25ELFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvQyxPQUFPO0FBQ1AsS0FBSztBQUNMLElBQUksT0FBTyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUc7QUFDckUsR0FBRztBQUNIO0FBQ0EsRUFBRSxTQUFTLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO0FBQzVELElBQUksSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDOUUsTUFBTSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFJLGlCQUFpQixHQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUNwRixNQUFNLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDO0FBQ3hGO0FBQ0EsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssaUJBQWlCLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN4RixXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxLQUFLLGtCQUFrQixHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ3RGLFFBQVEsSUFBSSxRQUFRLEVBQUU7QUFDdEIsVUFBVSxNQUFNLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDekMsVUFBVSxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtBQUNuQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQzVDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ2hDLFdBQVc7QUFDWCxTQUFTO0FBQ1QsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUNuQztBQUNBLFFBQVEsSUFBSSxNQUFNLEVBQUU7QUFDcEIsVUFBVSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDL0QsVUFBVSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLEdBQUcsaUJBQWlCO0FBQzlELFlBQVksRUFBRSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUM3RixVQUFVLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQzVHLFlBQVksRUFBRSxPQUFPLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUU7QUFDckUsU0FBUztBQUNUO0FBQ0EsUUFBUSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDM0MsUUFBUSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLEdBQUcsa0JBQWtCO0FBQzVELFVBQVUsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFD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Q0EsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztBQUN0RCxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztBQUMzRztBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNkLElBQUksT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEIsTUFBTSxJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNO0FBQ3JGLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDakIsS0FBSztBQUNMLElBQUksSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUN0QyxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7QUFDaEQ7QUFDQSxJQUFJLFNBQVM7QUFDYixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7QUFDeEIsUUFBUSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUMsUUFBUSxJQUFJLGtCQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7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QUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDbkUsTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtBQUNwRSxRQUFRLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDL0MsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQzdELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLO0FBQy9CLE1BQU0sRUFBRSxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7QUFDckY7QUFDQSxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRTtBQUNwQyxNQUFNLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRixNQUFNLE1BQU07QUFDWixLQUFLO0FBQ0wsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUNyRDtBQUNBO0FBQ0EsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUU7QUFDdEMsTUFBTSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN0RixnQkFBZ0IsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakUsS0FBSztBQUNMLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzlCLElBQUksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUU7QUFDL0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDaEYsZ0JBQWdCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELEtBQUs7QUFDTDtBQUNBLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMs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QTtBQUNBLElBQUksV0FBVyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNqQyxNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDL0MsUUFBUSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLFFBQVEsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ25DLFFBQVEsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFCLFFBQVEsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwQyxPQUFPO0FBQ1AsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0IsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLFFBQVEsRUFBRSxTQUFTLEtBQUssRUFBRTtBQUM5QixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLElBQUksV0FBVyxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDN0MsTUFBTSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztBQUM1QixNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0RixNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRTtBQUN4RSxLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7QUFDL0IsTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7QUFDdkMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7QUFDbkQsS0FBSztBQUNMLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxTQUFTLFdBQVcsQ0FBQyxRQUFRLEVBQUU7QUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM3QixJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDOUMsTUFBTSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0IsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDbEQsTUFBTSxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUN2QixLQUFLO0FBQ0wsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDdkIsR0FBRztBQUNIO0FBQ0EsRUFBRSxXQUFXLENBQUMsU0FBUyxHQUFHO0FBQzFCLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDOUM7QUFDQSxJQUFJLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDakMsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUNyQixNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNyRCxRQUFRLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUM3RCxRQUFRLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNyQixVQUFVLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUNsRSxVQUFVLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLFVBQVUsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUNsRCxVQUFVLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRTtBQUM5RSxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRTtBQUN2QyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDakIsU0FBUyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0FBQzVCLE9BQU87QUFDUDtBQUNBO0FBQ0EsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUU7QUFDNUIsV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLFNBQVMsQ0FBQyxDQUFDLEVBQUU7QUFDbEYsUUFBUSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDdkIsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzdCLFFBQVEsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDL0MsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDdkMsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksUUFBUSxFQUFFLFNBQVMsS0FBSyxFQUFFO0FBQzlCLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUMxRixLQUFLO0FBQ0w7QUFDQSxJQUFJLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0FBQzdDLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUM7QUFDNUIsTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7QUFDckQsUUFBUSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDN0QsUUFBUSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7QUFDdEIsVUFBVSxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0MsVUFBVSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO0FBQ3REO0FBQ0E7QUFDQSxZQUFZLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDekQsWUFBWSxLQUFLLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUc7QUFDakUsY0FBYyxJQUFJLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUUsY0FBYyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDMUMsY0FBYyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsY0FBYyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUNqQyxhQUFhO0FBQ2IsWUFBWSxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxRCxZQUFZLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUM5QixXQUFXO0FBQ1gsVUFBVSxLQUFLO0FBQ2YsU0FBUztBQUNULFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNqQixPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLFVBQVUsRUFBRSxXQUFXO0FBQzNCLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDaEQsTUFBTSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDcEIsTUFBTSxHQUFHO0FBQ1QsUUFBUSxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEUsUUFBUSxJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQyxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFO0FBQ3hCLFVBQVUsSUFBSSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2xELFVBQVUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDM0IsVUFBVSxFQUFFLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztBQUNwQixRQUFRLE1BQU07QUFDZCxVQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztBQUNsQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxVQUFVLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4RCxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM3RCxTQUFTO0FBQ1QsUUFBUSxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDbkMsT0FBTyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN2QyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDN0IsS0FBSztBQUNMO0FBQ0EsSUFBSSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtBQUMvQixNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNyRCxRQUFRLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUM3RCxRQUFRLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNyQixVQUFVLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUMxQyxVQUFVLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUU7QUFDeEQsVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUU7QUFDekMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLFNBQVMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtBQUM1QixPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUcsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBLEVBQUUsSUFBSSxVQUFVLEdBQUcsU0FBUyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUNoRCxJQUFJLElBQUksT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO0FBQzdFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO0FBQ3ZDLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDbkIsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNyQixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsWUFBWTtBQUMzQyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RGLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFO0FBQ3JDLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNyRixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRTtBQUM1QyxJQUFJLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOUQsSUFBSSxJQUFJLEVBQUUsRUFBRTtBQUNaLE1BQU0sT0FBTyxDQUFDLEVBQUUsRUFBRSxZQUFZO0FBQzlCLFFBQVEsNEJBQTRCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELFFBQVEsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEMsT0FBTyxDQUFDLENBQUM7QUFDVCxNQUFNLFdBQVcsQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RCxLQUFLO0FBQ0wsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFlBQVk7QUFDN0MsTUFBTSxJQUFJQyxRQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3hCO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztBQUMvRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLElBQUksSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ3RGLElBQUksSUFBSSxFQUFFLEVBQUU7QUFDWixNQUFNLE9BQU8sQ0FBQyxFQUFFLEVBQUUsWUFBWTtBQUM5QixRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNwQyxRQUFRLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsUUFBUSxXQUFXLENBQUMsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRUEsUUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLE9BQU8sQ0FBQyxDQUFDO0FBQ1QsS0FBSztBQUNMLEdBQUcsQ0FBQztBQUNKLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3pCO0FBQ0EsRUFBRSxTQUFTLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hELElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0FBQ25GLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbkMsR0FBRztBQUNIO0FBQ0EsRUFBRSxTQUFTLGFBQWEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDckQsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BELElBQUksSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNwQixJQUFJLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRTtBQUNuRSxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLElBQUksRUFBRTtBQUN0RCxNQUFNLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN4RCxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDNUQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFO0FBQ2pHLE1BQU0sTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDekIsTUFBTSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUU7QUFDMUMsUUFBUSxJQUFJLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztBQUM5RCxRQUFRLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ25FLFFBQVEsSUFBSSxZQUFZLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO0FBQ2hFLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ3BDLE9BQU87QUFDUCxNQUFNLE9BQU8sSUFBSTtBQUNqQixLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxNQUFNLElBQUksUUFBUSxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3BILElBQUksT0FBTyxNQUFNO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCO0FBQ0EsRUFBRSxJQUFJLFVBQVUsR0FBRyxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDdkMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDbkIsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDO0FBQzdCLEdBQUcsQ0FBQztBQUNKO0FBQ0E7QUFDQSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFlBQVk7QUFDM0MsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUMxQyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBQ25ELElBQUksSUFBSSxNQUFNLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUN2QyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtBQUNuQyxNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM5QixNQUFNLElBQUksS0FBSyxFQUFFLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUN0RSxLQUFLO0FBQ0wsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQztBQUMvQixJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNoRCxNQUFNLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0IsTUFBTSxJQUFJLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFELE1BQU0sSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRTtBQUM3RSxXQUFXLElBQUksRUFBRSxFQUFFO0FBQ25CLFFBQVEsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNwRCxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDdEQsT0FBTztBQUNQLE1BQU0sSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNwRixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzNELEtBQUs7QUFDTCxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRTtBQUM5RyxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6RSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO0FBQzFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQ3BDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQ3ZDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE9BQU87QUFDUCxLQUFLLEVBQUU7QUFDUDtBQUNBLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDN0UsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDMUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO0FBQzFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0FBQ2hDLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUMzQyxLQUFLO0FBQ0wsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDckUsSUFBSSxJQUFJLE1BQU0sRUFBRSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ3JDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQzdDLEdBQUcsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZELElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQzlELElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQ2pCLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO0FBQ2hELE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixNQUFNLElBQUksSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUQsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO0FBQzdCLFFBQVEsSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0QsUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFO0FBQ3ZDLE9BQU87QUFDUCxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUU7QUFDM0IsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6RCxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFO0FBQ3BDLE9BQU87QUFDUCxLQUFLO0FBQ0wsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN2QyxHQUFHLENBQUM7QUFDSjtBQUNBO0FBQ0E7QUFDQSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFlBQVk7QUFDN0MsTUFBTSxJQUFJQSxRQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3hCO0FBQ0EsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQ25FLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUMvQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsWUFBWTtBQUM1QixNQUFNLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEQsTUFBTSxJQUFJLElBQUksR0FBRyxlQUFlLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzVDLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDaEIsUUFBUSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ2hFLE9BQU87QUFDUCxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztBQUNwQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtBQUNwRSxRQUFRLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDdEMsUUFBUSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUM3QixRQUFRLElBQUksT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDdkQsUUFBUSxJQUFJLE9BQU87QUFDbkIsVUFBVSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUU7QUFDNUQsT0FBTztBQUNQLE1BQU0sV0FBVyxDQUFDLEVBQUUsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFQSxRQUFNLENBQUMsQ0FBQztBQUNuRCxLQUFLLENBQUMsQ0FBQztBQUNQLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRTtBQUNwRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtBQUMzQyxNQUFNLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztBQUNqQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLG9CQUFvQixLQUFLLEVBQUUsQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNuRixLQUFLO0FBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUU7QUFDcEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtBQUMzQyxNQUFNLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUs7QUFDaEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSixFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QjtBQUNBO0FBQ0EsRUFBRSxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtBQUMxRjtBQUNBLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtBQUNyRztBQUNBLElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLElBQUksSUFBSSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQ3JEO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLEtBQUs7QUFDaEUsTUFBTSxFQUFFLE9BQU8sTUFBTSxFQUFFO0FBQ3ZCLElBQUksSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO0FBQzdCO0FBQ0EsTUFBTSxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztBQUM5QixNQUFNLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQ25GLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDckcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRTtBQUN0RSxLQUFLO0FBQ0wsSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDMUIsTUFBTSxJQUFJLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDO0FBQ3JFLFVBQVUsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDO0FBQzNGLFFBQVEsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLEVBQUU7QUFDL0YsTUFBTSxpQkFBaUIsRUFBRSxDQUFDO0FBQzFCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxNQUFNLENBQUMsWUFBWTtBQUMzQixNQUFNLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDMUY7QUFDQSxJQUFJLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDO0FBQ3hELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVSxJQUFJLEVBQUU7QUFDbkQsTUFBTSxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTztBQUN0RyxRQUFRLEVBQUUsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFO0FBQ2pDLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDbEYsTUFBTSxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLE1BQU07QUFDL0MseUNBQXlDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSTtBQUM5RSx5Q0FBeUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckcsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUNoQixLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0EsSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVSxJQUFJLEVBQUU7QUFDN0UsTUFBTSxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNqRSxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQ1Q7QUFDQSxJQUFJLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDekc7QUFDQSxJQUFJLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtBQUN6QixNQUFNLGdCQUFnQixFQUFFLENBQUM7QUFDekIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNO0FBQzlELFFBQVEsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRTtBQUMvQixLQUFLO0FBQ0wsSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDMUIsTUFBTSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDO0FBQ2pDLE1BQU0sTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDM0IsS0FBSztBQUNMLElBQUksSUFBSSxFQUFFLEVBQUU7QUFDWjtBQUNBLE1BQU0sSUFBSSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRTtBQUMzRCxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVM7QUFDMUIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDbEQsV0FBVyxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxHQUFHO0FBQ3JGLGVBQWUsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsS0FBSztBQUNoRCxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ3hGLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDdEQsTUFBTSxXQUFXLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakQsS0FBSztBQUNMLElBQUksT0FBTyxNQUFNO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDM0IsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUMzQixJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUMzQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRTtBQUNuQyxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxZQUFZO0FBQ2pELElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDMUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUNoRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQ2xDLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvQixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxVQUFVLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDN0QsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7QUFDM0MsR0FBRyxDQUFDO0FBQ0osRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUMvQjtBQUNBLEVBQUUsU0FBUyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtBQUN4RCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztBQUMzQixJQUFJLElBQUksT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsSUFBSSxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ3BDLElBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsRUFBRTtBQUNuQyxNQUFNLElBQUksTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbEUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUNoRCxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFO0FBQ2xELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QixLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksT0FBTyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7QUFDakQsR0FBRztBQUNIO0FBQ0EsRUFBRSxTQUFTLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtBQUNsQyxJQUFJLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUNoSCxHQUFHO0FBQ0g7QUFDQSxFQUFFLFNBQVMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRTtBQUMzQyxJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzdDLE1BQU0sSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDbkQsTUFBTSxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0IsUUFBUSxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JGLFFBQVEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckMsUUFBUSxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUNoQyxPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUU7QUFDeEMsSUFBSSxJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRztBQUM5QixNQUFNLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlFLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3RELFFBQVEsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxRQUFRLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbEQsVUFBVSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUNsQyxVQUFVLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSyxDQUFDO0FBQ047QUFDQSxJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN2RCxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztBQUNwQixFQUFFLElBQUksR0FBRyxHQUFHLFNBQVMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtBQUNoRSxJQUFJLElBQUksRUFBRSxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRTtBQUM3RixJQUFJLElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUM3QztBQUNBLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7QUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDMUIsSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztBQUM3QixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztBQUMzRCxJQUFJLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEMsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDO0FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUMzQixJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxTQUFTLElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDMUQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztBQUN4QjtBQUNBLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ2xFLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQy9ELEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFO0FBQ25ELElBQUksV0FBVyxFQUFFLEdBQUc7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUMvRCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ3BFLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQ2hDLE1BQU0sSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQzNFLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkQsS0FBSztBQUNMLElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksUUFBUSxFQUFFLFNBQVMsT0FBTyxFQUFFO0FBQ2hDLE1BQU0sSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLEVBQUU7QUFDN0MsTUFBTSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUN4RCxLQUFLO0FBQ0wsSUFBSSxRQUFRLEVBQUUsV0FB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QzdFLEtBQUssQ0FBQztBQUNOLElBQUksWUFBWSxFQUFFLFdBQVcsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQzlELE1BQU0sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRixNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxRixLQUFLLENBQUM7QUFDTjtBQUNBLElBQUksWUFBWSxFQUFFLFNBQVMsT0FBTyxFQUFFO0FBQ3BDLE1BQU0sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBQzFDLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDOUMsUUFBUSxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyRSxRQUFRLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDaEQsT0FBTztBQUNQLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLEVBQUU7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QUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSztBQUNoRyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxRQUFRO0FBQzVGLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLO0FBQ25FLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ3ZFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUk7QUFDdkcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRO0FBQzlHLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxF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S0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDNUQsSUFBSSxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDN0QsSUFBSSxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRTtBQUM5RCxJQUFJLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRTtBQUM5RCxJQUFJLFlBQVksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFO0FBQ2xFLElBQUksYUFBYSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFO0FBQ2xFLElBQUksVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDOUQsSUFBSSxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUU7QUFDaEUsSUFBSSxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRTtBQUNoRSxJQUFJLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxD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LE9BQU8sQ0FBQyxFQUFFLEVBQUUsWUFBWTtBQUNuRSxNQUFNLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3BELE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDOUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0FBQzVDLFFBQVEsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxRQUFRLElBQUksSUFBSSxFQUFFO0FBQ2xCLFVBQVUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDN0UsVUFBVSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQzFCLFlBQVksR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDN0UsNEJBQTRCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdB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Q0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDckYsSUFBSSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO0FBQy9GLElBQUksT0FBTyxLQUFLO0FBQ2hCLEdBQUc7QUFDSDtBQUNBLEVBQUUsU0FBUyxjQUFjLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO0FBQ2xELElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3JELFNBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQyxFQUFFO0FBQzFDO0FBQ0EsSUFBSSxJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNyRDtBQUNBLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDO0FBQ3BDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFO0FBQzlELFFBQVEsTUFBTSxJQUFJLFFBQVEsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUks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VUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDaEYsS0FBSyxDQUFDO0FBQ047QUFDQSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDakMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbkUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDakQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDbkQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLE9BQU8sT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM5RCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVELEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLEVBQUUsVUFBVSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsRUFBRSxFQUFFLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDekU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxT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QUMxRSxPQUFPLENBQUM7QUFDUixNQUFNLGVBQWUsRUFBRSxRQUFRLENBQUMsU0FBUyxHQUFHLEVBQUU7QUFDOUMsUUFBUSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25ELFFBQVEsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDaEQsVUFBVSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFO0FBQzlCLFlBQVksSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDckQsWUFBWSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakQsWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzRSxZQUFZLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDO0FBQzVDLGNBQWMsRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQzNDLFlBQVksSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0FBQ2hELFlBQVksSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDO0FBQy9GLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsRUFBRTtBQUN2RyxXQUFXLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDNUMsWUFBWSxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUNsQyxZQUFZLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDM0UsV0FBVztBQUNYLFNBQVM7QUFDVCxPQUFPLENBQUM7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNLFVBQVUsRUFBRSxTQUFTLEdBQUcsRUFBRSxPQUFPLEVBQUU7QUFDekMsUUFBUSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQztBQUM1QyxPQUFPO0FBQ1A7QUFDQSxNQUFNLGFBQWEsRUFBRSxTQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDN0MsUUFBUSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUM7QUFDeEQsT0FBTztBQUNQO0FBQ0EsTUFBTSxjQUFjLEVBQUUsU0FBUyxHQUFHLEVBQUU7QUFDcEMsUUFBUSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDckMsUUFBUSxJQUFJLE1BQU0sR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLFFBQVEsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNyRSxRQUFRLElBQUksSUFBSSxDQUFDO0FBQ2pCLFFBQVEsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzFDLGFBQWEsRUFBRSxTQUFTO0FBQ3hCLFVBQVUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUMxQyxVQUFVLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRTtBQUNyRSxlQUFlLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUNsRSxlQUFlLEVBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO0FBQ3BELFNBQVMsRUFBRTtBQUNYLFFBQVEsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkQsUUFBUSxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEUsT0FBTztBQUNQO0FBQ0EsTUFBTSxTQUFTLEVBQUUsU0FBUyxHQUFHLEVBQUU7QUFDL0IsUUFBUSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUNqQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUU7QUFDNUMsUUFBUSxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtBQUMxRSxPQUFPO0FBQ1A7QUFDQSxNQUFNLFNBQVMsRUFBRSxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDckMsUUFBUSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QyxPQUFPO0FBQ1A7QUFDQSxNQUFNLFVBQVUsRUFBRSxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDdEMsUUFBUSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDdkIsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFO0FBQzNELFFBQVEsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLEVBQUU7QUFDM0MsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNqRSxTQUFTLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDL0IsVUFBVSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN0RCxZQUFZLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxZQUFZLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3pDLFdBQVc7QUFDWCxTQUFTLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDN0QsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFTLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ3BDLFVBQVUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEMsU0FBUztBQUNULFFBQVEsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQzVELFVBQVUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QyxVQUFVLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUss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QUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQy9ELFFBQVEsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN6QyxRQUFRLElBQUksSUFBSSxFQUFFO0FBQ2xCLFVBQVUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDeEQsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxRQUFRLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtBQUNuRyxVQUFVLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0MsVUFBVSxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztBQUNuRCxjQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxVQUFVLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDOUQsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDNUUsY0FBYyxVQUFVLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUM1RSxVQUFVLE9BQU8sS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVB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 diff --git a/.obsidian/plugins/obsidian-plaintext/manifest.json b/.obsidian/plugins/obsidian-plaintext/manifest.json new file mode 100644 index 0000000..467bd0c --- /dev/null +++ b/.obsidian/plugins/obsidian-plaintext/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-plaintext", + "name": "Plaintext", + "version": "0.2.0", + "minAppVersion": "0.13.14", + "description": "Allow opening specified files as plaintext (RAW mode).", + "author": "dbarenholz", + "authorUrl": "https://github.com/dbarenholz/dbarenholz", + "isDesktopOnly": false +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-tasks-plugin/data.json b/.obsidian/plugins/obsidian-tasks-plugin/data.json new file mode 100644 index 0000000..8254018 --- /dev/null +++ b/.obsidian/plugins/obsidian-tasks-plugin/data.json @@ -0,0 +1,14 @@ +{ + "globalFilter": "", + "removeGlobalFilter": false, + "setDoneDate": true, + "autoSuggestInEditor": true, + "autoSuggestMinMatch": 0, + "autoSuggestMaxItems": 6, + "provideAccessKeys": true, + "useFilenameAsScheduledDate": false, + "filenameAsDateFolders": [], + "features": { + "INTERNAL_TESTING_ENABLED_BY_DEFAULT": true + } +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-tasks-plugin/main.js b/.obsidian/plugins/obsidian-tasks-plugin/main.js new file mode 100644 index 0000000..6734d31 --- /dev/null +++ b/.obsidian/plugins/obsidian-tasks-plugin/main.js @@ -0,0 +1,163 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository +*/ + +/* +License obsidian-tasks: +MIT License + +Copyright (c) 2021 Martin Schenck + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +/* +License rrule (included library): +rrule.js: Library for working with recurrence rules for calendar dates. +======================================================================= + +Copyright 2010, Jakub Roztocil and Lars Schöning + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. 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. + + 3. Neither the name of The author nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR AND 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. + + + +./rrule.js and ./test/tests.js is based on python-dateutil. LICENCE: + +python-dateutil - Extensions to the standard Python datetime module. +==================================================================== + +Copyright (c) 2003-2011 - Gustavo Niemeyer +Copyright (c) 2012 - Tomi Pieviläinen + +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 copyright holder nor the names of its + 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. +*/ + +/* +License chrono-node (included library): +The MIT License + +Copyright (c) 2014, Wanasit Tanakitrungruang + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +"use strict";var F_=Object.create;var Zn=Object.defineProperty,U_=Object.defineProperties,q_=Object.getOwnPropertyDescriptor,L_=Object.getOwnPropertyDescriptors,W_=Object.getOwnPropertyNames,af=Object.getOwnPropertySymbols,Y_=Object.getPrototypeOf,uf=Object.prototype.hasOwnProperty,$_=Object.prototype.propertyIsEnumerable;var of=(r,e,t)=>e in r?Zn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Me=(r,e)=>{for(var t in e||(e={}))uf.call(e,t)&&of(r,t,e[t]);if(af)for(var t of af(e))$_.call(e,t)&&of(r,t,e[t]);return r},dt=(r,e)=>U_(r,L_(e));var p=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),j_=(r,e)=>{for(var t in e)Zn(r,t,{get:e[t],enumerable:!0})},lf=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of W_(e))!uf.call(r,i)&&i!==t&&Zn(r,i,{get:()=>e[i],enumerable:!(n=q_(e,i))||n.enumerable});return r};var Os=(r,e,t)=>(t=r!=null?F_(Y_(r)):{},lf(e||!r||!r.__esModule?Zn(t,"default",{value:r,enumerable:!0}):t,r)),B_=r=>lf(Zn({},"__esModule",{value:!0}),r);var B=(r,e,t)=>new Promise((n,i)=>{var s=u=>{try{o(t.next(u))}catch(l){i(l)}},a=u=>{try{o(t.throw(u))}catch(l){i(l)}},o=u=>u.done?n(u.value):Promise.resolve(u.value).then(s,a);o((t=t.apply(r,e)).next())});var Cf=p((Fk,xs)=>{var pf,hf,mf,yf,gf,_f,Tf,bf,vf,Ss,mo,Ef,wf,Rf,ln,Mf,Df,Of,Pf,kf,Af,Sf,Nf,xf,Ns;(function(r){var e=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){r(t(e,t(n)))}):typeof xs=="object"&&typeof xs.exports=="object"?r(t(e,t(xs.exports))):r(t(e));function t(n,i){return n!==e&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(s,a){return n[s]=i?i(s,a):a}}})(function(r){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])};pf=function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");e(n,i);function s(){this.constructor=n}n.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},hf=Object.assign||function(n){for(var i,s=1,a=arguments.length;s=0;c--)(l=n[c])&&(u=(o<3?l(u):o>3?l(i,s,u):l(i,s))||u);return o>3&&u&&Object.defineProperty(i,s,u),u},gf=function(n,i){return function(s,a){i(s,a,n)}},_f=function(n,i){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,i)},Tf=function(n,i,s,a){function o(u){return u instanceof s?u:new s(function(l){l(u)})}return new(s||(s=Promise))(function(u,l){function c(h){try{f(a.next(h))}catch(_){l(_)}}function d(h){try{f(a.throw(h))}catch(_){l(_)}}function f(h){h.done?u(h.value):o(h.value).then(c,d)}f((a=a.apply(n,i||[])).next())})},bf=function(n,i){var s={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},a,o,u,l;return l={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(f){return function(h){return d([f,h])}}function d(f){if(a)throw new TypeError("Generator is already executing.");for(;s;)try{if(a=1,o&&(u=f[0]&2?o.return:f[0]?o.throw||((u=o.return)&&u.call(o),0):o.next)&&!(u=u.call(o,f[1])).done)return u;switch(o=0,u&&(f=[f[0]&2,u.value]),f[0]){case 0:case 1:u=f;break;case 4:return s.label++,{value:f[1],done:!1};case 5:s.label++,o=f[1],f=[0];continue;case 7:f=s.ops.pop(),s.trys.pop();continue;default:if(u=s.trys,!(u=u.length>0&&u[u.length-1])&&(f[0]===6||f[0]===2)){s=0;continue}if(f[0]===3&&(!u||f[1]>u[0]&&f[1]=n.length&&(n=void 0),{value:n&&n[a++],done:!n}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")},mo=function(n,i){var s=typeof Symbol=="function"&&n[Symbol.iterator];if(!s)return n;var a=s.call(n),o,u=[],l;try{for(;(i===void 0||i-- >0)&&!(o=a.next()).done;)u.push(o.value)}catch(c){l={error:c}}finally{try{o&&!o.done&&(s=a.return)&&s.call(a)}finally{if(l)throw l.error}}return u},Ef=function(){for(var n=[],i=0;i1||c(m,g)})})}function c(m,g){try{d(a[m](g))}catch(R){_(u[0][3],R)}}function d(m){m.value instanceof ln?Promise.resolve(m.value.v).then(f,h):_(u[0][2],m)}function f(m){c("next",m)}function h(m){c("throw",m)}function _(m,g){m(g),u.shift(),u.length&&c(u[0][0],u[0][1])}},Df=function(n){var i,s;return i={},a("next"),a("throw",function(o){throw o}),a("return"),i[Symbol.iterator]=function(){return this},i;function a(o,u){i[o]=n[o]?function(l){return(s=!s)?{value:ln(n[o](l)),done:o==="return"}:u?u(l):l}:u}},Of=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n[Symbol.asyncIterator],s;return i?i.call(n):(n=typeof Ss=="function"?Ss(n):n[Symbol.iterator](),s={},a("next"),a("throw"),a("return"),s[Symbol.asyncIterator]=function(){return this},s);function a(u){s[u]=n[u]&&function(l){return new Promise(function(c,d){l=n[u](l),o(c,d,l.done,l.value)})}}function o(u,l,c,d){Promise.resolve(d).then(function(f){u({value:f,done:c})},l)}},Pf=function(n,i){return Object.defineProperty?Object.defineProperty(n,"raw",{value:i}):n.raw=i,n};var t=Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i};kf=function(n){if(n&&n.__esModule)return n;var i={};if(n!=null)for(var s in n)s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)&&Ns(i,n,s);return t(i,n),i},Af=function(n){return n&&n.__esModule?n:{default:n}},Sf=function(n,i,s,a){if(s==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof i=="function"?n!==i||!a:!i.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return s==="m"?a:s==="a"?a.call(n):a?a.value:i.get(n)},Nf=function(n,i,s,a,o){if(a==="m")throw new TypeError("Private method is not writable");if(a==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof i=="function"?n!==i||!o:!i.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return a==="a"?o.call(n,s):o?o.value=s:i.set(n,s),s},xf=function(n,i){if(i===null||typeof i!="object"&&typeof i!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?i===n:n.has(i)},r("__extends",pf),r("__assign",hf),r("__rest",mf),r("__decorate",yf),r("__param",gf),r("__metadata",_f),r("__awaiter",Tf),r("__generator",bf),r("__exportStar",vf),r("__createBinding",Ns),r("__values",Ss),r("__read",mo),r("__spread",Ef),r("__spreadArrays",wf),r("__spreadArray",Rf),r("__await",ln),r("__asyncGenerator",Mf),r("__asyncDelegator",Df),r("__asyncValues",Of),r("__makeTemplateObject",Pf),r("__importStar",kf),r("__importDefault",Af),r("__classPrivateFieldGet",Sf),r("__classPrivateFieldSet",Nf),r("__classPrivateFieldIn",xf)})});var re=p(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.matchAnyPattern=Tr.extractTerms=Tr.repeatedTimeunitPattern=void 0;function vT(r,e){let t=e.replace(/\((?!\?)/g,"(?:");return`${r}${t}\\s{0,5}(?:,?\\s{0,5}${t}){0,10}`}Tr.repeatedTimeunitPattern=vT;function hp(r){let e;return r instanceof Array?e=[...r]:r instanceof Map?e=Array.from(r.keys()):e=Object.keys(r),e}Tr.extractTerms=hp;function ET(r){return`(?:${hp(r).sort((t,n)=>n.length-t.length).join("|").replace(/\./g,"\\.")})`}Tr.matchAnyPattern=ET});var X=p((vo,Eo)=>{(function(r,e){typeof vo=="object"&&typeof Eo!="undefined"?Eo.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis!="undefined"?globalThis:r||self).dayjs=e()})(vo,function(){"use strict";var r=1e3,e=6e4,t=36e5,n="millisecond",i="second",s="minute",a="hour",o="day",u="week",l="month",c="quarter",d="year",f="date",h="Invalid Date",_=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|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,g={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("_")},R=function(A,E,b){var N=String(A);return!N||N.length>=E?A:""+Array(E+1-N.length).join(b)+A},w={s:R,z:function(A){var E=-A.utcOffset(),b=Math.abs(E),N=Math.floor(b/60),y=b%60;return(E<=0?"+":"-")+R(N,2,"0")+":"+R(y,2,"0")},m:function A(E,b){if(E.date(){"use strict";var wT=br&&br.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(br,"__esModule",{value:!0});br.findYearClosestToRef=br.findMostLikelyADYear=void 0;var RT=wT(X());function MT(r){return r<100&&(r>50?r=r+1900:r=r+2e3),r}br.findMostLikelyADYear=MT;function DT(r,e,t){let n=RT.default(r),i=n;i=i.month(t-1),i=i.date(e),i=i.year(n.year());let s=i.add(1,"y"),a=i.add(-1,"y");return Math.abs(s.diff(n)){"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.parseTimeUnits=L.TIME_UNITS_PATTERN=L.parseYear=L.YEAR_PATTERN=L.parseOrdinalNumberPattern=L.ORDINAL_NUMBER_PATTERN=L.parseNumberPattern=L.NUMBER_PATTERN=L.TIME_UNIT_DICTIONARY=L.ORDINAL_WORD_DICTIONARY=L.INTEGER_WORD_DICTIONARY=L.MONTH_DICTIONARY=L.FULL_MONTH_NAME_DICTIONARY=L.WEEKDAY_DICTIONARY=void 0;var Fs=re(),OT=Ue();L.WEEKDAY_DICTIONARY={sunday:0,sun:0,"sun.":0,monday:1,mon:1,"mon.":1,tuesday:2,tue:2,"tue.":2,wednesday:3,wed:3,"wed.":3,thursday:4,thurs:4,"thurs.":4,thur:4,"thur.":4,thu:4,"thu.":4,friday:5,fri:5,"fri.":5,saturday:6,sat:6,"sat.":6};L.FULL_MONTH_NAME_DICTIONARY={january:1,february:2,march:3,april:4,may:5,june:6,july:7,august:8,september:9,october:10,november:11,december:12};L.MONTH_DICTIONARY=Object.assign(Object.assign({},L.FULL_MONTH_NAME_DICTIONARY),{jan:1,"jan.":1,feb:2,"feb.":2,mar:3,"mar.":3,apr:4,"apr.":4,jun:6,"jun.":6,jul:7,"jul.":7,aug:8,"aug.":8,sep:9,"sep.":9,sept:9,"sept.":9,oct:10,"oct.":10,nov:11,"nov.":11,dec:12,"dec.":12});L.INTEGER_WORD_DICTIONARY={one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12};L.ORDINAL_WORD_DICTIONARY={first:1,second:2,third:3,fourth:4,fifth:5,sixth:6,seventh:7,eighth:8,ninth:9,tenth:10,eleventh:11,twelfth:12,thirteenth:13,fourteenth:14,fifteenth:15,sixteenth:16,seventeenth:17,eighteenth:18,nineteenth:19,twentieth:20,"twenty first":21,"twenty-first":21,"twenty second":22,"twenty-second":22,"twenty third":23,"twenty-third":23,"twenty fourth":24,"twenty-fourth":24,"twenty fifth":25,"twenty-fifth":25,"twenty sixth":26,"twenty-sixth":26,"twenty seventh":27,"twenty-seventh":27,"twenty eighth":28,"twenty-eighth":28,"twenty ninth":29,"twenty-ninth":29,thirtieth:30,"thirty first":31,"thirty-first":31};L.TIME_UNIT_DICTIONARY={sec:"second",second:"second",seconds:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",hour:"hour",hours:"hour",day:"d",days:"d",week:"week",weeks:"week",month:"month",months:"month",qtr:"quarter",quarter:"quarter",quarters:"quarter",y:"year",yr:"year",year:"year",years:"year"};L.NUMBER_PATTERN=`(?:${Fs.matchAnyPattern(L.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s{0,2}an?)?|an?\\b(?:\\s{0,2}few)?|few|several|a?\\s{0,2}couple\\s{0,2}(?:of)?)`;function yp(r){let e=r.toLowerCase();return L.INTEGER_WORD_DICTIONARY[e]!==void 0?L.INTEGER_WORD_DICTIONARY[e]:e==="a"||e==="an"?1:e.match(/few/)?3:e.match(/half/)?.5:e.match(/couple/)?2:e.match(/several/)?7:parseFloat(e)}L.parseNumberPattern=yp;L.ORDINAL_NUMBER_PATTERN=`(?:${Fs.matchAnyPattern(L.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:st|nd|rd|th)?)`;function PT(r){let e=r.toLowerCase();return L.ORDINAL_WORD_DICTIONARY[e]!==void 0?L.ORDINAL_WORD_DICTIONARY[e]:(e=e.replace(/(?:st|nd|rd|th)$/i,""),parseInt(e))}L.parseOrdinalNumberPattern=PT;L.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9])";function kT(r){if(/BE/i.test(r))return r=r.replace(/BE/i,""),parseInt(r)-543;if(/BCE?/i.test(r))return r=r.replace(/BCE?/i,""),-parseInt(r);if(/(AD|CE)/i.test(r))return r=r.replace(/(AD|CE)/i,""),parseInt(r);let e=parseInt(r);return OT.findMostLikelyADYear(e)}L.parseYear=kT;var gp=`(${L.NUMBER_PATTERN})\\s{0,3}(${Fs.matchAnyPattern(L.TIME_UNIT_DICTIONARY)})`,mp=new RegExp(gp,"i");L.TIME_UNITS_PATTERN=Fs.repeatedTimeunitPattern("(?:(?:about|around)\\s{0,3})?",gp);function AT(r){let e={},t=r,n=mp.exec(t);for(;n;)ST(e,n),t=t.substring(n[0].length).trim(),n=mp.exec(t);return e}L.parseTimeUnits=AT;function ST(r,e){let t=yp(e[1]),n=L.TIME_UNIT_DICTIONARY[e[2].toLowerCase()];r[n]=t}});var _p=p((wo,Ro)=>{(function(r,e){typeof wo=="object"&&typeof Ro!="undefined"?Ro.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis!="undefined"?globalThis:r||self).dayjs_plugin_quarterOfYear=e()})(wo,function(){"use strict";var r="month",e="quarter";return function(t,n){var i=n.prototype;i.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var s=i.add;i.add=function(o,u){return o=Number(o),this.$utils().p(u)===e?this.add(3*o,r):s.bind(this)(o,u)};var a=i.startOf;i.startOf=function(o,u){var l=this.$utils(),c=!!l.u(u)||u;if(l.p(o)===e){var d=this.quarter()-1;return c?this.month(3*d).startOf(r).startOf("day"):this.month(3*d+2).endOf(r).endOf("day")}return a.bind(this)(o,u)}}})});var ht=p(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.implySimilarTime=Lt.assignSimilarTime=Lt.assignSimilarDate=Lt.assignTheNextDay=void 0;var Tp=we();function NT(r,e){e=e.add(1,"day"),bp(r,e),vp(r,e)}Lt.assignTheNextDay=NT;function bp(r,e){r.assign("day",e.date()),r.assign("month",e.month()+1),r.assign("year",e.year())}Lt.assignSimilarDate=bp;function xT(r,e){r.assign("hour",e.hour()),r.assign("minute",e.minute()),r.assign("second",e.second()),r.assign("millisecond",e.millisecond()),r.get("hour")<12?r.assign("meridiem",Tp.Meridiem.AM):r.assign("meridiem",Tp.Meridiem.PM)}Lt.assignSimilarTime=xT;function vp(r,e){r.imply("hour",e.hour()),r.imply("minute",e.minute()),r.imply("second",e.second()),r.imply("millisecond",e.millisecond())}Lt.implySimilarTime=vp});var Ep=p(Ir=>{"use strict";Object.defineProperty(Ir,"__esModule",{value:!0});Ir.toTimezoneOffset=Ir.TIMEZONE_ABBR_MAP=void 0;Ir.TIMEZONE_ABBR_MAP={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:60,CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:-300,FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:180,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:-480,PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360};function CT(r){var e;return r==null?null:typeof r=="number"?r:(e=Ir.TIMEZONE_ABBR_MAP[r])!==null&&e!==void 0?e:null}Ir.toTimezoneOffset=CT});var me=p(Wt=>{"use strict";var wp=Wt&&Wt.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Wt,"__esModule",{value:!0});Wt.ParsingResult=Wt.ParsingComponents=Wt.ReferenceWithTimezone=void 0;var IT=wp(_p()),Us=wp(X()),Mo=ht(),FT=Ep();Us.default.extend(IT.default);var Do=class{constructor(e){var t;e=e!=null?e:new Date,e instanceof Date?this.instant=e:(this.instant=(t=e.instant)!==null&&t!==void 0?t:new Date,this.timezoneOffset=FT.toTimezoneOffset(e.timezone))}};Wt.ReferenceWithTimezone=Do;var Fr=class{constructor(e,t){if(this.reference=e,this.knownValues={},this.impliedValues={},t)for(let i in t)this.knownValues[i]=t[i];let n=Us.default(e.instant);this.imply("day",n.date()),this.imply("month",n.month()+1),this.imply("year",n.year()),this.imply("hour",12),this.imply("minute",0),this.imply("second",0),this.imply("millisecond",0)}get(e){return e in this.knownValues?this.knownValues[e]:e in this.impliedValues?this.impliedValues[e]:null}isCertain(e){return e in this.knownValues}getCertainComponents(){return Object.keys(this.knownValues)}imply(e,t){return e in this.knownValues?this:(this.impliedValues[e]=t,this)}assign(e,t){return this.knownValues[e]=t,delete this.impliedValues[e],this}delete(e){delete this.knownValues[e],delete this.impliedValues[e]}clone(){let e=new Fr(this.reference);e.knownValues={},e.impliedValues={};for(let t in this.knownValues)e.knownValues[t]=this.knownValues[t];for(let t in this.impliedValues)e.impliedValues[t]=this.impliedValues[t];return e}isOnlyDate(){return!this.isCertain("hour")&&!this.isCertain("minute")&&!this.isCertain("second")}isOnlyTime(){return!this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isOnlyWeekdayComponent(){return this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isOnlyDayMonthComponent(){return this.isCertain("day")&&this.isCertain("month")&&!this.isCertain("year")}isValidDate(){let e=this.dateWithoutTimezoneAdjustment();return!(e.getFullYear()!==this.get("year")||e.getMonth()!==this.get("month")-1||e.getDate()!==this.get("day")||this.get("hour")!=null&&e.getHours()!=this.get("hour")||this.get("minute")!=null&&e.getMinutes()!=this.get("minute"))}toString(){return`[ParsingComponents {knownValues: ${JSON.stringify(this.knownValues)}, impliedValues: ${JSON.stringify(this.impliedValues)}}, reference: ${JSON.stringify(this.reference)}]`}dayjs(){return Us.default(this.date())}date(){let e=this.dateWithoutTimezoneAdjustment();return new Date(e.getTime()+this.getSystemTimezoneAdjustmentMinute(e)*6e4)}dateWithoutTimezoneAdjustment(){let e=new Date(this.get("year"),this.get("month")-1,this.get("day"),this.get("hour"),this.get("minute"),this.get("second"),this.get("millisecond"));return e.setFullYear(this.get("year")),e}getSystemTimezoneAdjustmentMinute(e){var t,n;(!e||e.getTime()<0)&&(e=new Date);let i=-e.getTimezoneOffset(),s=(n=(t=this.get("timezoneOffset"))!==null&&t!==void 0?t:this.reference.timezoneOffset)!==null&&n!==void 0?n:i;return i-s}static createRelativeFromReference(e,t){let n=Us.default(e.instant);for(let s in t)n=n.add(t[s],s);let i=new Fr(e);return t.hour||t.minute||t.second?(Mo.assignSimilarTime(i,n),Mo.assignSimilarDate(i,n),e.timezoneOffset!==null&&i.assign("timezoneOffset",-e.instant.getTimezoneOffset())):(Mo.implySimilarTime(i,n),e.timezoneOffset!==null&&i.imply("timezoneOffset",-e.instant.getTimezoneOffset()),t.d?(i.assign("day",n.date()),i.assign("month",n.month()+1),i.assign("year",n.year())):(t.week&&i.imply("weekday",n.day()),i.imply("day",n.date()),t.month?(i.assign("month",n.month()+1),i.assign("year",n.year())):(i.imply("month",n.month()+1),t.year?i.assign("year",n.year()):i.imply("year",n.year())))),i}};Wt.ParsingComponents=Fr;var si=class{constructor(e,t,n,i,s){this.reference=e,this.refDate=e.instant,this.index=t,this.text=n,this.start=i||new Fr(e),this.end=s}clone(){let e=new si(this.reference,this.index,this.text);return e.start=this.start?this.start.clone():null,e.end=this.end?this.end.clone():null,e}date(){return this.start.date()}toString(){return`[ParsingResult {index: ${this.index}, text: '${this.text}', ...}]`}};Wt.ParsingResult=si});var M=p(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.AbstractParserWithWordBoundaryChecking=void 0;var Oo=class{constructor(){this.cachedInnerPattern=null,this.cachedPattern=null}patternLeftBoundary(){return"(\\W|^)"}pattern(e){let t=this.innerPattern(e);return t==this.cachedInnerPattern?this.cachedPattern:(this.cachedPattern=new RegExp(`${this.patternLeftBoundary()}${t.source}`,t.flags),this.cachedInnerPattern=t,this.cachedPattern)}extract(e,t){var n;let i=(n=t[1])!==null&&n!==void 0?n:"";t.index=t.index+i.length,t[0]=t[0].substring(i.length);for(let s=2;s{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});var ko=qe(),UT=me(),qT=M(),LT=new RegExp(`(?:within|in|for)\\s*(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${ko.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),WT=new RegExp(`(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${ko.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),Po=class extends qT.AbstractParserWithWordBoundaryChecking{innerPattern(e){return e.option.forwardDate?WT:LT}innerExtract(e,t){let n=ko.parseTimeUnits(t[1]);return UT.ParsingComponents.createRelativeFromReference(e.reference,n)}};Ao.default=Po});var Ap=p(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});var YT=Ue(),Pp=qe(),kp=qe(),Ls=qe(),$T=re(),jT=M(),BT=new RegExp(`(?:on\\s{0,3})?(${Ls.ORDINAL_NUMBER_PATTERN})(?:\\s{0,3}(?:to|\\-|\\\u2013|until|through|till)?\\s{0,3}(${Ls.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s{0,3}(?:of)?\\s{0,3})(${$T.matchAnyPattern(Pp.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s{0,3})(${kp.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),Mp=1,Dp=2,GT=3,Op=4,So=class extends jT.AbstractParserWithWordBoundaryChecking{innerPattern(){return BT}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=Pp.MONTH_DICTIONARY[t[GT].toLowerCase()],s=Ls.parseOrdinalNumberPattern(t[Mp]);if(s>31)return t.index=t.index+t[Mp].length,null;if(n.start.assign("month",i),n.start.assign("day",s),t[Op]){let a=kp.parseYear(t[Op]);n.start.assign("year",a)}else{let a=YT.findYearClosestToRef(e.refDate,s,i);n.start.imply("year",a)}if(t[Dp]){let a=Ls.parseOrdinalNumberPattern(t[Dp]);n.end=n.start.clone(),n.end.assign("day",a)}return n}};No.default=So});var Ip=p(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});var HT=Ue(),xp=qe(),Ws=qe(),Cp=qe(),zT=re(),KT=M(),VT=new RegExp(`(${zT.matchAnyPattern(xp.MONTH_DICTIONARY)})(?:-|/|\\s*,?\\s*)(${Ws.ORDINAL_NUMBER_PATTERN})(?!\\s*(?:am|pm))\\s*(?:(?:to|\\-)\\s*(${Ws.ORDINAL_NUMBER_PATTERN})\\s*)?(?:(?:-|/|\\s*,?\\s*)(${Cp.YEAR_PATTERN}))?(?=\\W|$)(?!\\:\\d)`,"i"),XT=1,ZT=2,Sp=3,Np=4,xo=class extends KT.AbstractParserWithWordBoundaryChecking{innerPattern(){return VT}innerExtract(e,t){let n=xp.MONTH_DICTIONARY[t[XT].toLowerCase()],i=Ws.parseOrdinalNumberPattern(t[ZT]);if(i>31)return null;let s=e.createParsingComponents({day:i,month:n});if(t[Np]){let u=Cp.parseYear(t[Np]);s.assign("year",u)}else{let u=HT.findYearClosestToRef(e.refDate,i,n);s.imply("year",u)}if(!t[Sp])return s;let a=Ws.parseOrdinalNumberPattern(t[Sp]),o=e.createParsingResult(t.index,t[0]);return o.start=s,o.end=s.clone(),o.end.assign("day",a),o}};Co.default=xo});var qp=p(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});var Io=qe(),QT=Ue(),JT=re(),Up=qe(),eb=M(),tb=new RegExp(`((?:in)\\s*)?(${JT.matchAnyPattern(Io.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${Up.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),rb=1,nb=2,Fp=3,Fo=class extends eb.AbstractParserWithWordBoundaryChecking{innerPattern(){return tb}innerExtract(e,t){let n=t[nb].toLowerCase();if(t[0].length<=3&&!Io.FULL_MONTH_NAME_DICTIONARY[n])return null;let i=e.createParsingResult(t.index+(t[rb]||"").length,t.index+t[0].length);i.start.imply("day",1);let s=Io.MONTH_DICTIONARY[n];if(i.start.assign("month",s),t[Fp]){let a=Up.parseYear(t[Fp]);i.start.assign("year",a)}else{let a=QT.findYearClosestToRef(e.refDate,1,s);i.start.imply("year",a)}return i}};Uo.default=Fo});var Yp=p(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});var Wp=qe(),ib=re(),sb=M(),ab=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${ib.matchAnyPattern(Wp.MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),ob=1,ub=2,Lp=3,lb=4,qo=class extends sb.AbstractParserWithWordBoundaryChecking{innerPattern(){return ab}innerExtract(e,t){let n=t[Lp]?parseInt(t[Lp]):Wp.MONTH_DICTIONARY[t[ub].toLowerCase()];if(n<1||n>12)return null;let i=parseInt(t[ob]);return{day:parseInt(t[lb]),month:n,year:i}}};Lo.default=qo});var $p=p(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});var cb=M(),db=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),fb=1,pb=2,Wo=class extends cb.AbstractParserWithWordBoundaryChecking{innerPattern(){return db}innerExtract(e,t){let n=parseInt(t[pb]),i=parseInt(t[fb]);return e.createParsingComponents().imply("day",1).assign("month",i).assign("year",n)}};Yo.default=Wo});var Ur=p(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.AbstractTimeExpressionParser=void 0;var Ge=we();function hb(r,e,t,n){return new RegExp(`${r}${e}(\\d{1,4})(?:(?:\\.|:|\uFF1A)(\\d{1,2})(?:(?::|\uFF1A)(\\d{2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${t}`,n)}function mb(r,e){return new RegExp(`^(${r})(\\d{1,4})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${e}`,"i")}var jp=2,pn=3,Ys=4,$s=5,ai=6,$o=class{constructor(e=!1){this.cachedPrimaryPrefix=null,this.cachedPrimarySuffix=null,this.cachedPrimaryTimePattern=null,this.cachedFollowingPhase=null,this.cachedFollowingSuffix=null,this.cachedFollowingTimePatten=null,this.strictMode=e}patternFlags(){return"i"}primaryPatternLeftBoundary(){return"(^|\\s|T|\\b)"}primarySuffix(){return"(?=\\W|$)"}followingSuffix(){return"(?=\\W|$)"}pattern(e){return this.getPrimaryTimePatternThroughCache()}extract(e,t){let n=this.extractPrimaryTimeComponents(e,t);if(!n)return t.index+=t[0].length,null;let i=t.index+t[1].length,s=t[0].substring(t[1].length),a=e.createParsingResult(i,s,n);t.index+=t[0].length;let o=e.text.substring(t.index),l=this.getFollowingTimePatternThroughCache().exec(o);return s.match(/^\d{3,4}/)&&l&&l[0].match(/^\s*([+-])\s*\d{2,4}$/)?null:!l||l[0].match(/^\s*([+-])\s*\d{3,4}$/)?this.checkAndReturnWithoutFollowingPattern(a):(a.end=this.extractFollowingTimeComponents(e,l,a),a.end&&(a.text+=l[0]),this.checkAndReturnWithFollowingPattern(a))}extractPrimaryTimeComponents(e,t,n=!1){let i=e.createParsingComponents(),s=0,a=null,o=parseInt(t[jp]);if(o>100){if(this.strictMode||t[pn]!=null)return null;s=o%100,o=Math.floor(o/100)}if(o>24)return null;if(t[pn]!=null){if(t[pn].length==1&&!t[ai])return null;s=parseInt(t[pn])}if(s>=60)return null;if(o>12&&(a=Ge.Meridiem.PM),t[ai]!=null){if(o>12)return null;let u=t[ai][0].toLowerCase();u=="a"&&(a=Ge.Meridiem.AM,o==12&&(o=0)),u=="p"&&(a=Ge.Meridiem.PM,o!=12&&(o+=12))}if(i.assign("hour",o),i.assign("minute",s),a!==null?i.assign("meridiem",a):o<12?i.imply("meridiem",Ge.Meridiem.AM):i.imply("meridiem",Ge.Meridiem.PM),t[$s]!=null){let u=parseInt(t[$s].substring(0,3));if(u>=1e3)return null;i.assign("millisecond",u)}if(t[Ys]!=null){let u=parseInt(t[Ys]);if(u>=60)return null;i.assign("second",u)}return i}extractFollowingTimeComponents(e,t,n){let i=e.createParsingComponents();if(t[$s]!=null){let u=parseInt(t[$s].substring(0,3));if(u>=1e3)return null;i.assign("millisecond",u)}if(t[Ys]!=null){let u=parseInt(t[Ys]);if(u>=60)return null;i.assign("second",u)}let s=parseInt(t[jp]),a=0,o=-1;if(t[pn]!=null?a=parseInt(t[pn]):s>100&&(a=s%100,s=Math.floor(s/100)),a>=60||s>24)return null;if(s>=12&&(o=Ge.Meridiem.PM),t[ai]!=null){if(s>12)return null;let u=t[ai][0].toLowerCase();u=="a"&&(o=Ge.Meridiem.AM,s==12&&(s=0,i.isCertain("day")||i.imply("day",i.get("day")+1))),u=="p"&&(o=Ge.Meridiem.PM,s!=12&&(s+=12)),n.start.isCertain("meridiem")||(o==Ge.Meridiem.AM?(n.start.imply("meridiem",Ge.Meridiem.AM),n.start.get("hour")==12&&n.start.assign("hour",0)):(n.start.imply("meridiem",Ge.Meridiem.PM),n.start.get("hour")!=12&&n.start.assign("hour",n.start.get("hour")+12)))}return i.assign("hour",s),i.assign("minute",a),o>=0?i.assign("meridiem",o):n.start.isCertain("meridiem")&&n.start.get("hour")>12?n.start.get("hour")-12>s?i.imply("meridiem",Ge.Meridiem.AM):s<=12&&(i.assign("hour",s+12),i.assign("meridiem",Ge.Meridiem.PM)):s>12?i.imply("meridiem",Ge.Meridiem.PM):s<=12&&i.imply("meridiem",Ge.Meridiem.AM),i.date().getTime()24)return null}return e}checkAndReturnWithFollowingPattern(e){if(e.text.match(/^\d+-\d+$/))return null;let t=e.text.match(/[^\d:.](\d[\d.]+)\s*-\s*(\d[\d.]+)$/);if(t){if(this.strictMode)return null;let n=t[1],i=t[2];if(i.includes(".")&&!i.match(/\d(\.\d{2})+$/))return null;let s=parseInt(i),a=parseInt(n);if(s>24||a>24)return null}return e}getPrimaryTimePatternThroughCache(){let e=this.primaryPrefix(),t=this.primarySuffix();return this.cachedPrimaryPrefix===e&&this.cachedPrimarySuffix===t?this.cachedPrimaryTimePattern:(this.cachedPrimaryTimePattern=hb(this.primaryPatternLeftBoundary(),e,t,this.patternFlags()),this.cachedPrimaryPrefix=e,this.cachedPrimarySuffix=t,this.cachedPrimaryTimePattern)}getFollowingTimePatternThroughCache(){let e=this.followingPhase(),t=this.followingSuffix();return this.cachedFollowingPhase===e&&this.cachedFollowingSuffix===t?this.cachedFollowingTimePatten:(this.cachedFollowingTimePatten=mb(e,t),this.cachedFollowingPhase=e,this.cachedFollowingSuffix=t,this.cachedFollowingTimePatten)}};js.AbstractTimeExpressionParser=$o});var Bp=p(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});var Bs=we(),yb=Ur(),jo=class extends yb.AbstractTimeExpressionParser{constructor(e){super(e)}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|to|\\?)\\s*"}primaryPrefix(){return"(?:(?:at|from)\\s*)??"}primarySuffix(){return"(?:\\s*(?:o\\W*clock|at\\s*night|in\\s*the\\s*(?:morning|afternoon)))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(e,t){let n=super.extractPrimaryTimeComponents(e,t);if(n){if(t[0].endsWith("night")){let i=n.get("hour");i>=6&&i<12?(n.assign("hour",n.get("hour")+12),n.assign("meridiem",Bs.Meridiem.PM)):i<6&&n.assign("meridiem",Bs.Meridiem.AM)}if(t[0].endsWith("afternoon")){n.assign("meridiem",Bs.Meridiem.PM);let i=n.get("hour");i>=0&&i<=6&&n.assign("hour",n.get("hour")+12)}t[0].endsWith("morning")&&(n.assign("meridiem",Bs.Meridiem.AM),n.get("hour")<12&&n.assign("hour",n.get("hour")))}return n}};Bo.default=jo});var mt=p(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.addImpliedTimeUnits=hn.reverseTimeUnits=void 0;function gb(r){let e={};for(let t in r)e[t]=-r[t];return e}hn.reverseTimeUnits=gb;function _b(r,e){let t=r.clone(),n=r.dayjs();for(let i in e)n=n.add(e[i],i);return("day"in e||"d"in e||"week"in e||"month"in e||"year"in e)&&(t.imply("day",n.date()),t.imply("month",n.month()+1),t.imply("year",n.year())),("second"in e||"minute"in e||"hour"in e)&&(t.imply("second",n.second()),t.imply("minute",n.minute()),t.imply("hour",n.hour())),t}hn.addImpliedTimeUnits=_b});var Gp=p(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});var Ho=qe(),Tb=me(),bb=M(),vb=mt(),Eb=new RegExp(`(${Ho.TIME_UNITS_PATTERN})\\s{0,5}(?:ago|before|earlier)(?=(?:\\W|$))`,"i"),wb=new RegExp(`(${Ho.TIME_UNITS_PATTERN})\\s{0,5}ago(?=(?:\\W|$))`,"i"),Go=class extends bb.AbstractParserWithWordBoundaryChecking{constructor(e){super(),this.strictMode=e}innerPattern(){return this.strictMode?wb:Eb}innerExtract(e,t){let n=Ho.parseTimeUnits(t[1]),i=vb.reverseTimeUnits(n);return Tb.ParsingComponents.createRelativeFromReference(e.reference,i)}};zo.default=Go});var Hp=p(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});var Vo=qe(),Rb=me(),Mb=M(),Db=new RegExp(`(${Vo.TIME_UNITS_PATTERN})\\s{0,5}(?:later|after|from now|henceforth|forward|out)(?=(?:\\W|$))`,"i"),Ob=new RegExp("("+Vo.TIME_UNITS_PATTERN+")(later|from now)(?=(?:\\W|$))","i"),Pb=1,Ko=class extends Mb.AbstractParserWithWordBoundaryChecking{constructor(e){super(),this.strictMode=e}innerPattern(){return this.strictMode?Ob:Db}innerExtract(e,t){let n=Vo.parseTimeUnits(t[Pb]);return Rb.ParsingComponents.createRelativeFromReference(e.reference,n)}};Xo.default=Ko});var yn=p(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.MergingRefiner=mn.Filter=void 0;var Zo=class{refine(e,t){return t.filter(n=>this.isValid(e,n))}};mn.Filter=Zo;var Qo=class{refine(e,t){if(t.length<2)return t;let n=[],i=t[0],s=null;for(let a=1;a{console.log(`${this.constructor.name} merged ${u} and ${l} into ${c}`)}),i=c}}return i!=null&&n.push(i),n}};mn.MergingRefiner=Qo});var Yt=p(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});var kb=yn(),Jo=class extends kb.MergingRefiner{shouldMergeResults(e,t,n){return!t.end&&!n.end&&e.match(this.patternBetween())!=null}mergeResults(e,t,n){if(!t.start.isOnlyWeekdayComponent()&&!n.start.isOnlyWeekdayComponent()&&(n.start.getCertainComponents().forEach(s=>{t.start.isCertain(s)||t.start.assign(s,n.start.get(s))}),t.start.getCertainComponents().forEach(s=>{n.start.isCertain(s)||n.start.assign(s,t.start.get(s))})),t.start.date().getTime()>n.start.date().getTime()){let s=t.start.dayjs(),a=n.start.dayjs();t.start.isOnlyWeekdayComponent()&&s.add(-7,"days").isBefore(a)?(s=s.add(-7,"days"),t.start.imply("day",s.date()),t.start.imply("month",s.month()+1),t.start.imply("year",s.year())):n.start.isOnlyWeekdayComponent()&&a.add(7,"days").isAfter(s)?(a=a.add(7,"days"),n.start.imply("day",a.date()),n.start.imply("month",a.month()+1),n.start.imply("year",a.year())):[n,t]=[t,n]}let i=t.clone();return i.start=t.start,i.end=n.start,i.index=Math.min(t.index,n.index),t.index{"use strict";var Ab=oi&&oi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(oi,"__esModule",{value:!0});var Sb=Ab(Yt()),tu=class extends Sb.default{patternBetween(){return/^\s*(to|-)\s*$/i}};oi.default=tu});var Kp=p(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.mergeDateTimeComponent=gn.mergeDateTimeResult=void 0;var Nb=we();function xb(r,e){let t=r.clone(),n=r.start,i=e.start;if(t.start=ru(n,i),r.end!=null||e.end!=null){let s=r.end==null?r.start:r.end,a=e.end==null?e.start:e.end,o=ru(s,a);r.end==null&&o.date().getTime(){"use strict";Object.defineProperty(iu,"__esModule",{value:!0});var Cb=yn(),Vp=Kp(),nu=class extends Cb.MergingRefiner{shouldMergeResults(e,t,n){return(t.start.isOnlyDate()&&n.start.isOnlyTime()||n.start.isOnlyDate()&&t.start.isOnlyTime())&&e.match(this.patternBetween())!=null}mergeResults(e,t,n){let i=t.start.isOnlyDate()?Vp.mergeDateTimeResult(t,n):Vp.mergeDateTimeResult(n,t);return i.index=t.index,i.text=t.text+e+n.text,i}};iu.default=nu});var Xp=p(ui=>{"use strict";var Ib=ui&&ui.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ui,"__esModule",{value:!0});var Fb=Ib(Zt()),su=class extends Fb.default{patternBetween(){return new RegExp("^\\s*(T|at|after|before|on|of|,|-)?\\s*$")}};ui.default=su});var Zp=p(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});var Ub=new RegExp("^\\s*,?\\s*\\(?([A-Z]{2,4})\\)?(?=\\W|$)","i"),qb={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:60,CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:-300,FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:240,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:-480,PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360},au=class{constructor(e){this.timezone=Object.assign(Object.assign({},qb),e)}refine(e,t){var n;let i=(n=e.option.timezones)!==null&&n!==void 0?n:{};return t.forEach(s=>{var a,o;let u=e.text.substring(s.index+s.text.length),l=Ub.exec(u);if(!l)return;let c=l[1].toUpperCase(),d=(o=(a=i[c])!==null&&a!==void 0?a:this.timezone[c])!==null&&o!==void 0?o:null;if(d===null)return;e.debug(()=>{console.log(`Extracting timezone: '${c}' into: ${d} for: ${s.start}`)});let f=s.start.get("timezoneOffset");f!==null&&d!=f&&(s.start.isCertain("timezoneOffset")||c!=l[1])||s.start.isOnlyDate()&&c!=l[1]||(s.text+=l[0],s.start.isCertain("timezoneOffset")||s.start.assign("timezoneOffset",d),s.end!=null&&!s.end.isCertain("timezoneOffset")&&s.end.assign("timezoneOffset",d))}),t}};ou.default=au});var Gs=p(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});var Lb=new RegExp("^\\s*(?:\\(?(?:GMT|UTC)\\s?)?([+-])(\\d{1,2})(?::?(\\d{2}))?\\)?","i"),Wb=1,Yb=2,$b=3,uu=class{refine(e,t){return t.forEach(function(n){if(n.start.isCertain("timezoneOffset"))return;let i=e.text.substring(n.index+n.text.length),s=Lb.exec(i);if(!s)return;e.debug(()=>{console.log(`Extracting timezone: '${s[0]}' into : ${n}`)});let a=parseInt(s[Yb]),o=parseInt(s[$b]||"0"),u=a*60+o;u>14*60||(s[Wb]==="-"&&(u=-u),n.end!=null&&n.end.assign("timezoneOffset",u),n.start.assign("timezoneOffset",u),n.text+=s[0])}),t}};lu.default=uu});var Qp=p(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});var cu=class{refine(e,t){if(t.length<2)return t;let n=[],i=t[0];for(let s=1;si.text.length&&(i=a):(n.push(i),i=a)}return i!=null&&n.push(i),n}};du.default=cu});var Jp=p(li=>{"use strict";var jb=li&&li.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(li,"__esModule",{value:!0});var Bb=jb(X()),fu=class{refine(e,t){return e.option.forwardDate&&t.forEach(function(n){let i=Bb.default(e.refDate);if(n.start.isOnlyDayMonthComponent()&&i.isAfter(n.start.dayjs()))for(let s=0;s<3&&i.isAfter(n.start.dayjs());s++)n.start.imply("year",n.start.get("year")+1),e.debug(()=>{console.log(`Forward yearly adjusted for ${n} (${n.start})`)}),n.end&&!n.end.isCertain("year")&&(n.end.imply("year",n.end.get("year")+1),e.debug(()=>{console.log(`Forward yearly adjusted for ${n} (${n.end})`)}));n.start.isOnlyWeekdayComponent()&&i.isAfter(n.start.dayjs())&&(i.day()>=n.start.get("weekday")?i=i.day(n.start.get("weekday")+7):i=i.day(n.start.get("weekday")),n.start.imply("day",i.date()),n.start.imply("month",i.month()+1),n.start.imply("year",i.year()),e.debug(()=>{console.log(`Forward weekly adjusted for ${n} (${n.start})`)}),n.end&&n.end.isOnlyWeekdayComponent()&&(i.day()>n.end.get("weekday")?i=i.day(n.end.get("weekday")+7):i=i.day(n.end.get("weekday")),n.end.imply("day",i.date()),n.end.imply("month",i.month()+1),n.end.imply("year",i.year()),e.debug(()=>{console.log(`Forward weekly adjusted for ${n} (${n.end})`)})))}),t}};li.default=fu});var eh=p(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});var Gb=yn(),pu=class extends Gb.Filter{constructor(e){super(),this.strictMode=e}isValid(e,t){return t.text.replace(" ","").match(/^\d*(\.\d*)?$/)?(e.debug(()=>{console.log(`Removing unlikely result '${t.text}'`)}),!1):t.start.isValidDate()?t.end&&!t.end.isValidDate()?(e.debug(()=>{console.log(`Removing invalid result: ${t} (${t.end})`)}),!1):this.strictMode?this.isStrictModeValid(e,t):!0:(e.debug(()=>{console.log(`Removing invalid result: ${t} (${t.start})`)}),!1)}isStrictModeValid(e,t){return t.start.isOnlyWeekdayComponent()?(e.debug(()=>{console.log(`(Strict) Removing weekday only component: ${t} (${t.end})`)}),!1):t.start.isOnlyTime()&&(!t.start.isCertain("hour")||!t.start.isCertain("minute"))?(e.debug(()=>{console.log(`(Strict) Removing uncertain time component: ${t} (${t.end})`)}),!1):!0}};hu.default=pu});var gu=p(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});var Hb=M(),zb=new RegExp("([0-9]{4})\\-([0-9]{1,2})\\-([0-9]{1,2})(?:T([0-9]{1,2}):([0-9]{1,2})(?::([0-9]{1,2})(?:\\.(\\d{1,4}))?)?(?:Z|([+-]\\d{2}):?(\\d{2})?)?)?(?=\\W|$)","i"),Kb=1,Vb=2,Xb=3,th=4,Zb=5,rh=6,nh=7,ih=8,sh=9,mu=class extends Hb.AbstractParserWithWordBoundaryChecking{innerPattern(){return zb}innerExtract(e,t){let n={};if(n.year=parseInt(t[Kb]),n.month=parseInt(t[Vb]),n.day=parseInt(t[Xb]),t[th]!=null)if(n.hour=parseInt(t[th]),n.minute=parseInt(t[Zb]),t[rh]!=null&&(n.second=parseInt(t[rh])),t[nh]!=null&&(n.millisecond=parseInt(t[nh])),t[ih]==null)n.timezoneOffset=0;else{let i=parseInt(t[ih]),s=0;t[sh]!=null&&(s=parseInt(t[sh]));let a=i*60;a<0?a-=s:a+=s,n.timezoneOffset=a}return n}};yu.default=mu});var ah=p(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});var Qb=yn(),_u=class extends Qb.MergingRefiner{mergeResults(e,t,n){let i=n.clone();return i.index=t.index,i.text=t.text+e+i.text,i.start.assign("weekday",t.start.get("weekday")),i.end&&i.end.assign("weekday",t.start.get("weekday")),i}shouldMergeResults(e,t,n){return t.start.isOnlyWeekdayComponent()&&!t.start.isCertain("hour")&&n.start.isCertain("day")&&e.match(/^,?\s*$/)!=null}};Tu.default=_u});var Qt=p(_n=>{"use strict";var qr=_n&&_n.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(_n,"__esModule",{value:!0});_n.includeCommonConfiguration=void 0;var Jb=qr(Zp()),ev=qr(Gs()),oh=qr(Qp()),tv=qr(Jp()),rv=qr(eh()),nv=qr(gu()),iv=qr(ah());function sv(r,e=!1){return r.parsers.unshift(new nv.default),r.refiners.unshift(new iv.default),r.refiners.unshift(new Jb.default),r.refiners.unshift(new ev.default),r.refiners.unshift(new oh.default),r.refiners.push(new oh.default),r.refiners.push(new tv.default),r.refiners.push(new rv.default(e)),r}_n.includeCommonConfiguration=sv});var er=p(te=>{"use strict";var av=te&&te.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(te,"__esModule",{value:!0});te.noon=te.morning=te.midnight=te.yesterdayEvening=te.evening=te.lastNight=te.tonight=te.theDayAfter=te.tomorrow=te.theDayBefore=te.yesterday=te.today=te.now=void 0;var $t=me(),Tn=av(X()),Jt=ht(),ci=we();function ov(r){let e=Tn.default(r.instant),t=new $t.ParsingComponents(r,{});return Jt.assignSimilarDate(t,e),Jt.assignSimilarTime(t,e),r.timezoneOffset!==null&&t.assign("timezoneOffset",e.utcOffset()),t}te.now=ov;function uv(r){let e=Tn.default(r.instant),t=new $t.ParsingComponents(r,{});return Jt.assignSimilarDate(t,e),Jt.implySimilarTime(t,e),t}te.today=uv;function lv(r){return uh(r,1)}te.yesterday=lv;function uh(r,e){return bu(r,-e)}te.theDayBefore=uh;function cv(r){return bu(r,1)}te.tomorrow=cv;function bu(r,e){let t=Tn.default(r.instant),n=new $t.ParsingComponents(r,{});return t=t.add(e,"day"),Jt.assignSimilarDate(n,t),Jt.implySimilarTime(n,t),n}te.theDayAfter=bu;function dv(r,e=22){let t=Tn.default(r.instant),n=new $t.ParsingComponents(r,{});return n.imply("hour",e),n.imply("meridiem",ci.Meridiem.PM),Jt.assignSimilarDate(n,t),n}te.tonight=dv;function fv(r,e=0){let t=Tn.default(r.instant),n=new $t.ParsingComponents(r,{});return t.hour()<6&&(t=t.add(-1,"day")),Jt.assignSimilarDate(n,t),n.imply("hour",e),n}te.lastNight=fv;function pv(r,e=20){let t=new $t.ParsingComponents(r,{});return t.imply("meridiem",ci.Meridiem.PM),t.imply("hour",e),t}te.evening=pv;function hv(r,e=20){let t=Tn.default(r.instant),n=new $t.ParsingComponents(r,{});return t=t.add(-1,"day"),Jt.assignSimilarDate(n,t),n.imply("hour",e),n.imply("meridiem",ci.Meridiem.PM),n}te.yesterdayEvening=hv;function mv(r){let e=new $t.ParsingComponents(r,{});return e.imply("hour",0),e.imply("minute",0),e.imply("second",0),e}te.midnight=mv;function yv(r,e=6){let t=new $t.ParsingComponents(r,{});return t.imply("meridiem",ci.Meridiem.AM),t.imply("hour",e),t}te.morning=yv;function gv(r){let e=new $t.ParsingComponents(r,{});return e.imply("meridiem",ci.Meridiem.AM),e.imply("hour",12),e}te.noon=gv});var lh=p(Rt=>{"use strict";var _v=Rt&&Rt.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),Tv=Rt&&Rt.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),bv=Rt&&Rt.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&_v(e,r,t);return Tv(e,r),e},vv=Rt&&Rt.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Rt,"__esModule",{value:!0});var Ev=vv(X()),wv=M(),Rv=ht(),di=bv(er()),Mv=/(now|today|tonight|tomorrow|tmr|tmrw|yesterday|last\s*night)(?=\W|$)/i,vu=class extends wv.AbstractParserWithWordBoundaryChecking{innerPattern(e){return Mv}innerExtract(e,t){let n=Ev.default(e.refDate),i=t[0].toLowerCase(),s=e.createParsingComponents();switch(i){case"now":return di.now(e.reference);case"today":return di.today(e.reference);case"yesterday":return di.yesterday(e.reference);case"tomorrow":case"tmr":case"tmrw":return di.tomorrow(e.reference);case"tonight":return di.tonight(e.reference);default:i.match(/last\s*night/)&&(n.hour()>6&&(n=n.add(-1,"day")),Rv.assignSimilarDate(s,n),s.imply("hour",0));break}return s}};Rt.default=vu});var ch=p(fi=>{"use strict";var Dv=fi&&fi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(fi,"__esModule",{value:!0});var Hs=we(),Ov=M(),Pv=Dv(X()),kv=ht(),Av=/(?:this)?\s{0,3}(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i,Eu=class extends Ov.AbstractParserWithWordBoundaryChecking{innerPattern(){return Av}innerExtract(e,t){let n=Pv.default(e.refDate),i=e.createParsingComponents();switch(t[1].toLowerCase()){case"afternoon":i.imply("meridiem",Hs.Meridiem.PM),i.imply("hour",15);break;case"evening":case"night":i.imply("meridiem",Hs.Meridiem.PM),i.imply("hour",20);break;case"midnight":kv.assignTheNextDay(i,n),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"morning":i.imply("meridiem",Hs.Meridiem.AM),i.imply("hour",6);break;case"noon":i.imply("meridiem",Hs.Meridiem.AM),i.imply("hour",12);break}return i}};fi.default=Eu});var Lr=p(vr=>{"use strict";var Sv=vr&&vr.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(vr,"__esModule",{value:!0});vr.toDayJSClosestWeekday=vr.toDayJSWeekday=void 0;var dh=Sv(X());function Nv(r,e,t){if(!t)return fh(r,e);let n=dh.default(r);switch(t){case"this":n=n.day(e);break;case"next":n=n.day(e+7);break;case"last":n=n.day(e-7);break}return n}vr.toDayJSWeekday=Nv;function fh(r,e){let t=dh.default(r),n=t.day();return Math.abs(e-7-n){"use strict";Object.defineProperty(Ru,"__esModule",{value:!0});var ph=qe(),xv=re(),Cv=M(),Iv=Lr(),Fv=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:on\\s*?)?(?:(this|last|past|next)\\s*)?(${xv.matchAnyPattern(ph.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(this|last|past|next)\\s*week)?(?=\\W|$)`,"i"),Uv=1,qv=2,Lv=3,wu=class extends Cv.AbstractParserWithWordBoundaryChecking{innerPattern(){return Fv}innerExtract(e,t){let n=t[qv].toLowerCase(),i=ph.WEEKDAY_DICTIONARY[n],s=t[Uv],a=t[Lv],o=s||a;o=o||"",o=o.toLowerCase();let u=null;o=="last"||o=="past"?u="last":o=="next"?u="next":o=="this"&&(u="this");let l=Iv.toDayJSWeekday(e.refDate,i,u);return e.createParsingComponents().assign("weekday",i).imply("day",l.date()).imply("month",l.month()+1).imply("year",l.year())}};Ru.default=wu});var gh=p(pi=>{"use strict";var Wv=pi&&pi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(pi,"__esModule",{value:!0});var yh=qe(),mh=me(),Yv=Wv(X()),$v=M(),jv=re(),Bv=new RegExp(`(this|last|past|next|after\\s*this)\\s*(${jv.matchAnyPattern(yh.TIME_UNIT_DICTIONARY)})(?=\\s*)(?=\\W|$)`,"i"),Gv=1,Hv=2,Mu=class extends $v.AbstractParserWithWordBoundaryChecking{innerPattern(){return Bv}innerExtract(e,t){let n=t[Gv].toLowerCase(),i=t[Hv].toLowerCase(),s=yh.TIME_UNIT_DICTIONARY[i];if(n=="next"||n.startsWith("after")){let u={};return u[s]=1,mh.ParsingComponents.createRelativeFromReference(e.reference,u)}if(n=="last"||n=="past"){let u={};return u[s]=-1,mh.ParsingComponents.createRelativeFromReference(e.reference,u)}let a=e.createParsingComponents(),o=Yv.default(e.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):i.match(/month/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):i.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};pi.default=Mu});var Mt=p(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.ParsingContext=En.Chrono=void 0;var bn=me(),zv=Du(),vn=class{constructor(e){e=e||zv.createCasualConfiguration(),this.parsers=[...e.parsers],this.refiners=[...e.refiners]}clone(){return new vn({parsers:[...this.parsers],refiners:[...this.refiners]})}parseDate(e,t,n){let i=this.parse(e,t,n);return i.length>0?i[0].start.date():null}parse(e,t,n){let i=new zs(e,t,n),s=[];return this.parsers.forEach(a=>{let o=vn.executeParser(i,a);s=s.concat(o)}),s.sort((a,o)=>a.index-o.index),this.refiners.forEach(function(a){s=a.refine(i,s)}),s}static executeParser(e,t){let n=[],i=t.pattern(e),s=e.text,a=e.text,o=i.exec(a);for(;o;){let u=o.index+s.length-a.length;o.index=u;let l=t.extract(e,o);if(!l){a=s.substring(o.index+1),o=i.exec(a);continue}let c=null;l instanceof bn.ParsingResult?c=l:l instanceof bn.ParsingComponents?(c=e.createParsingResult(o.index,o[0]),c.start=l):c=e.createParsingResult(o.index,o[0],l),e.debug(()=>console.log(`${t.constructor.name} extracted result ${c}`)),n.push(c),a=s.substring(u+c.text.length),o=i.exec(a)}return n}};En.Chrono=vn;var zs=class{constructor(e,t,n){this.text=e,this.reference=new bn.ReferenceWithTimezone(t),this.option=n!=null?n:{},this.refDate=this.reference.instant}createParsingComponents(e){return e instanceof bn.ParsingComponents?e:new bn.ParsingComponents(this.reference,e)}createParsingResult(e,t,n,i){let s=typeof t=="string"?t:this.text.substring(e,t),a=n?this.createParsingComponents(n):null,o=i?this.createParsingComponents(i):null;return new bn.ParsingResult(this.reference,e,s,a,o)}debug(e){this.option.debug&&(this.option.debug instanceof Function?this.option.debug(e):this.option.debug.debug(e))}};En.ParsingContext=zs});var Wr=p(ku=>{"use strict";Object.defineProperty(ku,"__esModule",{value:!0});var _h=Ue(),Kv=new RegExp("([^\\d]|^)([0-3]{0,1}[0-9]{1})[\\/\\.\\-]([0-3]{0,1}[0-9]{1})(?:[\\/\\.\\-]([0-9]{4}|[0-9]{2}))?(\\W|$)","i"),Ks=1,Th=5,bh=2,vh=3,Ou=4,Pu=class{constructor(e){this.groupNumberMonth=e?vh:bh,this.groupNumberDay=e?bh:vh}pattern(){return Kv}extract(e,t){if(t[Ks]=="/"||t[Th]=="/"){t.index+=t[0].length;return}let n=t.index+t[Ks].length,i=t[0].substr(t[Ks].length,t[0].length-t[Ks].length-t[Th].length);if(i.match(/^\d\.\d$/)||i.match(/^\d\.\d{1,2}\.\d{1,2}\s*$/)||!t[Ou]&&t[0].indexOf("/")<0)return;let s=e.createParsingResult(n,i),a=parseInt(t[this.groupNumberMonth]),o=parseInt(t[this.groupNumberDay]);if((a<1||a>12)&&a>12)if(o>=1&&o<=12&&a<=31)[o,a]=[a,o];else return null;if(o<1||o>31)return null;if(s.start.assign("day",o),s.start.assign("month",a),t[Ou]){let u=parseInt(t[Ou]),l=_h.findMostLikelyADYear(u);s.start.assign("year",l)}else{let u=_h.findYearClosestToRef(e.refDate,o,a);s.start.imply("year",u)}return s}};ku.default=Pu});var wh=p(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});var Eh=qe(),Vv=me(),Xv=M(),Zv=mt(),Qv=new RegExp(`(this|last|past|next|after|\\+|-)\\s*(${Eh.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),Au=class extends Xv.AbstractParserWithWordBoundaryChecking{innerPattern(){return Qv}innerExtract(e,t){let n=t[1].toLowerCase(),i=Eh.parseTimeUnits(t[2]);switch(n){case"last":case"past":case"-":i=Zv.reverseTimeUnits(i);break}return Vv.ParsingComponents.createRelativeFromReference(e.reference,i)}};Su.default=Au});var Mh=p(Cu=>{"use strict";Object.defineProperty(Cu,"__esModule",{value:!0});var Jv=yn(),Nu=me(),e1=qe(),t1=mt();function Rh(r){return r.text.match(/\s+(before|from)$/i)!=null}function r1(r){return r.text.match(/\s+(after|since)$/i)!=null}var xu=class extends Jv.MergingRefiner{patternBetween(){return/^\s*$/i}shouldMergeResults(e,t,n){return!e.match(this.patternBetween())||!Rh(t)&&!r1(t)?!1:!!n.start.get("day")&&!!n.start.get("month")&&!!n.start.get("year")}mergeResults(e,t,n){let i=e1.parseTimeUnits(t.text);Rh(t)&&(i=t1.reverseTimeUnits(i));let s=Nu.ParsingComponents.createRelativeFromReference(new Nu.ReferenceWithTimezone(n.start.date()),i);return new Nu.ParsingResult(n.reference,t.index,`${t.text}${e}${n.text}`,s)}};Cu.default=xu});var Du=p(be=>{"use strict";var De=be&&be.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(be,"__esModule",{value:!0});be.createConfiguration=be.createCasualConfiguration=be.parseDate=be.parse=be.GB=be.strict=be.casual=void 0;var n1=De(Rp()),i1=De(Ap()),s1=De(Ip()),a1=De(qp()),o1=De(Yp()),u1=De($p()),l1=De(Bp()),c1=De(Gp()),d1=De(Hp()),f1=De(zp()),p1=De(Xp()),h1=Qt(),m1=De(lh()),y1=De(ch()),g1=De(hh()),_1=De(gh()),Iu=Mt(),T1=De(Wr()),b1=De(wh()),v1=De(Mh());be.casual=new Iu.Chrono(Dh(!1));be.strict=new Iu.Chrono(Vs(!0,!1));be.GB=new Iu.Chrono(Vs(!1,!0));function E1(r,e,t){return be.casual.parse(r,e,t)}be.parse=E1;function w1(r,e,t){return be.casual.parseDate(r,e,t)}be.parseDate=w1;function Dh(r=!1){let e=Vs(!1,r);return e.parsers.unshift(new m1.default),e.parsers.unshift(new y1.default),e.parsers.unshift(new a1.default),e.parsers.unshift(new _1.default),e.parsers.unshift(new b1.default),e}be.createCasualConfiguration=Dh;function Vs(r=!0,e=!1){return h1.includeCommonConfiguration({parsers:[new T1.default(e),new n1.default,new i1.default,new s1.default,new g1.default,new o1.default,new u1.default,new l1.default(r),new c1.default(r),new d1.default(r)],refiners:[new v1.default,new p1.default,new f1.default]},r)}be.createConfiguration=Vs});var Oh=p(Uu=>{"use strict";Object.defineProperty(Uu,"__esModule",{value:!0});var R1=Ur(),Fu=class extends R1.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:um|von)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|bis)\\s*"}extractPrimaryTimeComponents(e,t){return t[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(e,t)}};Uu.default=Fu});var hi=p(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.parseTimeUnits=ie.TIME_UNITS_PATTERN=ie.parseYear=ie.YEAR_PATTERN=ie.parseNumberPattern=ie.NUMBER_PATTERN=ie.TIME_UNIT_DICTIONARY=ie.INTEGER_WORD_DICTIONARY=ie.MONTH_DICTIONARY=ie.WEEKDAY_DICTIONARY=void 0;var qu=re(),M1=Ue();ie.WEEKDAY_DICTIONARY={sonntag:0,so:0,montag:1,mo:1,dienstag:2,di:2,mittwoch:3,mi:3,donnerstag:4,do:4,freitag:5,fr:5,samstag:6,sa:6};ie.MONTH_DICTIONARY={januar:1,j\u00E4nner:1,janner:1,jan:1,"jan.":1,februar:2,feber:2,feb:2,"feb.":2,m\u00E4rz:3,maerz:3,m\u00E4r:3,"m\xE4r.":3,mrz:3,"mrz.":3,april:4,apr:4,"apr.":4,mai:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,august:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,dezember:12,dez:12,"dez.":12};ie.INTEGER_WORD_DICTIONARY={eins:1,eine:1,einem:1,einen:1,einer:1,zwei:2,drei:3,vier:4,f\u00FCnf:5,fuenf:5,sechs:6,sieben:7,acht:8,neun:9,zehn:10,elf:11,zw\u00F6lf:12,zwoelf:12};ie.TIME_UNIT_DICTIONARY={sek:"second",sekunde:"second",sekunden:"second",min:"minute",minute:"minute",minuten:"minute",h:"hour",std:"hour",stunde:"hour",stunden:"hour",tag:"d",tage:"d",tagen:"d",woche:"week",wochen:"week",monat:"month",monate:"month",monaten:"month",monats:"month",quartal:"quarter",quartals:"quarter",quartale:"quarter",quartalen:"quarter",a:"year",j:"year",jr:"year",jahr:"year",jahre:"year",jahren:"year",jahres:"year"};ie.NUMBER_PATTERN=`(?:${qu.matchAnyPattern(ie.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s*an?)?|an?\\b(?:\\s*few)?|few|several|a?\\s*couple\\s*(?:of)?)`;function kh(r){let e=r.toLowerCase();return ie.INTEGER_WORD_DICTIONARY[e]!==void 0?ie.INTEGER_WORD_DICTIONARY[e]:e==="a"||e==="an"?1:e.match(/few/)?3:e.match(/half/)?.5:e.match(/couple/)?2:e.match(/several/)?7:parseFloat(e)}ie.parseNumberPattern=kh;ie.YEAR_PATTERN="(?:[0-9]{1,4}(?:\\s*[vn]\\.?\\s*(?:C(?:hr)?|(?:u\\.?|d\\.?(?:\\s*g\\.?)?)?\\s*Z)\\.?|\\s*(?:u\\.?|d\\.?(?:\\s*g\\.)?)\\s*Z\\.?)?)";function D1(r){if(/v/i.test(r))return-parseInt(r.replace(/[^0-9]+/gi,""));if(/n/i.test(r))return parseInt(r.replace(/[^0-9]+/gi,""));if(/z/i.test(r))return parseInt(r.replace(/[^0-9]+/gi,""));let e=parseInt(r);return M1.findMostLikelyADYear(e)}ie.parseYear=D1;var Ah=`(${ie.NUMBER_PATTERN})\\s{0,5}(${qu.matchAnyPattern(ie.TIME_UNIT_DICTIONARY)})\\s{0,5}`,Ph=new RegExp(Ah,"i");ie.TIME_UNITS_PATTERN=qu.repeatedTimeunitPattern("",Ah);function O1(r){let e={},t=r,n=Ph.exec(t);for(;n;)P1(e,n),t=t.substring(n[0].length),n=Ph.exec(t);return e}ie.parseTimeUnits=O1;function P1(r,e){let t=kh(e[1]),n=ie.TIME_UNIT_DICTIONARY[e[2].toLowerCase()];r[n]=t}});var Nh=p(Wu=>{"use strict";Object.defineProperty(Wu,"__esModule",{value:!0});var Sh=hi(),k1=re(),A1=M(),S1=Lr(),N1=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:a[mn]\\s*?)?(?:(diese[mn]|letzte[mn]|n(?:\xE4|ae)chste[mn])\\s*)?(${k1.matchAnyPattern(Sh.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(diese|letzte|n(?:\xE4|ae)chste)\\s*woche)?(?=\\W|$)`,"i"),x1=1,C1=3,I1=2,Lu=class extends A1.AbstractParserWithWordBoundaryChecking{innerPattern(){return N1}innerExtract(e,t){let n=t[I1].toLowerCase(),i=Sh.WEEKDAY_DICTIONARY[n],s=t[x1],a=t[C1],o=s||a;o=o||"",o=o.toLowerCase();let u=null;o.match(/letzte/)?u="last":o.match(/chste/)?u="next":o.match(/diese/)&&(u="this");let l=S1.toDayJSWeekday(e.refDate,i,u);return e.createParsingComponents().assign("weekday",i).imply("day",l.date()).imply("month",l.month()+1).imply("year",l.year())}};Wu.default=Lu});var Fh=p(Yu=>{"use strict";Object.defineProperty(Yu,"__esModule",{value:!0});var Er=we(),F1=new RegExp("(^|\\s|T)(?:(?:um|von)\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),U1=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|bis(?:\\s+um)?|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),q1=2,xh=3,Ch=4,Ih=5,wn=class{pattern(e){return F1}extract(e,t){let n=e.createParsingResult(t.index+t[1].length,t[0].substring(t[1].length));if(n.text.match(/^\d{4}$/)||(n.start=wn.extractTimeComponent(n.start.clone(),t),!n.start))return t.index+=t[0].length,null;let i=e.text.substring(t.index+t[0].length),s=U1.exec(i);return s&&(n.end=wn.extractTimeComponent(n.start.clone(),s),n.end&&(n.text+=s[0])),n}static extractTimeComponent(e,t){let n=0,i=0,s=null;if(n=parseInt(t[q1]),t[xh]!=null&&(i=parseInt(t[xh])),i>=60||n>24)return null;if(n>=12&&(s=Er.Meridiem.PM),t[Ih]!=null){if(n>12)return null;let a=t[Ih].toLowerCase();a.match(/morgen|vormittag/)&&(s=Er.Meridiem.AM,n==12&&(n=0)),a.match(/nachmittag|abend/)&&(s=Er.Meridiem.PM,n!=12&&(n+=12)),a.match(/nacht/)&&(n==12?(s=Er.Meridiem.AM,n=0):n<6?s=Er.Meridiem.AM:(s=Er.Meridiem.PM,n+=12))}if(e.assign("hour",n),e.assign("minute",i),s!==null?e.assign("meridiem",s):n<12?e.imply("meridiem",Er.Meridiem.AM):e.imply("meridiem",Er.Meridiem.PM),t[Ch]!=null){let a=parseInt(t[Ch]);if(a>=60)return null;e.assign("second",a)}return e}};Yu.default=wn});var Uh=p(mi=>{"use strict";var L1=mi&&mi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(mi,"__esModule",{value:!0});var W1=L1(Yt()),$u=class extends W1.default{patternBetween(){return/^\s*(bis(?:\s*(?:am|zum))?|-)\s*$/i}};mi.default=$u});var qh=p(yi=>{"use strict";var Y1=yi&&yi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(yi,"__esModule",{value:!0});var $1=Y1(Zt()),ju=class extends $1.default{patternBetween(){return new RegExp("^\\s*(T|um|am|,|-)?\\s*$")}};yi.default=ju});var Bu=p(_i=>{"use strict";var j1=_i&&_i.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(_i,"__esModule",{value:!0});var B1=j1(X()),Yr=we(),G1=M(),H1=ht(),z1=mt(),gi=class extends G1.AbstractParserWithWordBoundaryChecking{innerPattern(e){return/(diesen)?\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht)(?=\W|$)/i}innerExtract(e,t){let n=B1.default(e.refDate),i=t[2].toLowerCase(),s=e.createParsingComponents();return H1.implySimilarTime(s,n),gi.extractTimeComponents(s,i)}static extractTimeComponents(e,t){switch(t){case"morgen":e.imply("hour",6),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.AM);break;case"vormittag":e.imply("hour",9),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.AM);break;case"mittag":case"mittags":e.imply("hour",12),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.AM);break;case"nachmittag":e.imply("hour",15),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.PM);break;case"abend":e.imply("hour",18),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.PM);break;case"nacht":e.imply("hour",22),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.PM);break;case"mitternacht":e.get("hour")>1&&(e=z1.addImpliedTimeUnits(e,{day:1})),e.imply("hour",0),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",Yr.Meridiem.AM);break}return e}};_i.default=gi});var Yh=p(Dt=>{"use strict";var K1=Dt&&Dt.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),V1=Dt&&Dt.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),X1=Dt&&Dt.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&K1(e,r,t);return V1(e,r),e},Wh=Dt&&Dt.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Dt,"__esModule",{value:!0});var Z1=Wh(X()),Q1=M(),$r=ht(),J1=Wh(Bu()),Lh=X1(er()),eE=new RegExp("(jetzt|heute|morgen|\xFCbermorgen|uebermorgen|gestern|vorgestern|letzte\\s*nacht)(?:\\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht))?(?=\\W|$)","i"),tE=1,rE=2,Gu=class extends Q1.AbstractParserWithWordBoundaryChecking{innerPattern(e){return eE}innerExtract(e,t){let n=Z1.default(e.refDate),i=(t[tE]||"").toLowerCase(),s=(t[rE]||"").toLowerCase(),a=e.createParsingComponents();switch(i){case"jetzt":a=Lh.now(e.reference);break;case"heute":a=Lh.today(e.reference);break;case"morgen":$r.assignTheNextDay(a,n);break;case"\xFCbermorgen":case"uebermorgen":n=n.add(1,"day"),$r.assignTheNextDay(a,n);break;case"gestern":n=n.add(-1,"day"),$r.assignSimilarDate(a,n),$r.implySimilarTime(a,n);break;case"vorgestern":n=n.add(-2,"day"),$r.assignSimilarDate(a,n),$r.implySimilarTime(a,n);break;default:i.match(/letzte\s*nacht/)&&(n.hour()>6&&(n=n.add(-1,"day")),$r.assignSimilarDate(a,n),a.imply("hour",0));break}return s&&(a=J1.default.extractTimeComponents(a,s)),a}};Dt.default=Gu});var zh=p(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});var nE=Ue(),Gh=hi(),Hh=hi(),iE=re(),sE=M(),aE=new RegExp(`(?:am\\s*?)?(?:den\\s*?)?([0-9]{1,2})\\.(?:\\s*(?:bis(?:\\s*(?:am|zum))?|\\-|\\\u2013|\\s)\\s*([0-9]{1,2})\\.?)?\\s*(${iE.matchAnyPattern(Gh.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s*)(${Hh.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),$h=1,jh=2,oE=3,Bh=4,Hu=class extends sE.AbstractParserWithWordBoundaryChecking{innerPattern(){return aE}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=Gh.MONTH_DICTIONARY[t[oE].toLowerCase()],s=parseInt(t[$h]);if(s>31)return t.index=t.index+t[$h].length,null;if(n.start.assign("month",i),n.start.assign("day",s),t[Bh]){let a=Hh.parseYear(t[Bh]);n.start.assign("year",a)}else{let a=nE.findYearClosestToRef(e.refDate,s,i);n.start.imply("year",a)}if(t[jh]){let a=parseInt(t[jh]);n.end=n.start.clone(),n.end.assign("day",a)}return n}};zu.default=Hu});var Kh=p(Vu=>{"use strict";Object.defineProperty(Vu,"__esModule",{value:!0});var Xs=hi(),uE=me(),lE=M(),cE=mt(),dE=re(),Ku=class extends lE.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`(?:\\s*((?:n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?|vor|in)\\s*)?(${Xs.NUMBER_PATTERN})?(?:\\s*(n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?)?\\s*(${dE.matchAnyPattern(Xs.TIME_UNIT_DICTIONARY)})`,"i")}innerExtract(e,t){let n=t[2]?Xs.parseNumberPattern(t[2]):1,i=Xs.TIME_UNIT_DICTIONARY[t[4].toLowerCase()],s={};s[i]=n;let a=t[1]||t[3]||"";if(a=a.toLowerCase(),!!a)return(/vor/.test(a)||/letzte/.test(a)||/vergangen/.test(a))&&(s=cE.reverseTimeUnits(s)),uE.ParsingComponents.createRelativeFromReference(e.reference,s)}};Vu.default=Ku});var Zh=p(Oe=>{"use strict";var Ot=Oe&&Oe.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createConfiguration=Oe.createCasualConfiguration=Oe.parseDate=Oe.parse=Oe.strict=Oe.casual=void 0;var fE=Qt(),Vh=Mt(),pE=Ot(Wr()),hE=Ot(gu()),mE=Ot(Oh()),yE=Ot(Nh()),gE=Ot(Fh()),_E=Ot(Uh()),TE=Ot(qh()),bE=Ot(Yh()),vE=Ot(Bu()),EE=Ot(zh()),wE=Ot(Kh());Oe.casual=new Vh.Chrono(Xh());Oe.strict=new Vh.Chrono(Xu(!0));function RE(r,e,t){return Oe.casual.parse(r,e,t)}Oe.parse=RE;function ME(r,e,t){return Oe.casual.parseDate(r,e,t)}Oe.parseDate=ME;function Xh(r=!0){let e=Xu(!1,r);return e.parsers.unshift(new vE.default),e.parsers.unshift(new bE.default),e.parsers.unshift(new wE.default),e}Oe.createCasualConfiguration=Xh;function Xu(r=!0,e=!0){return fE.includeCommonConfiguration({parsers:[new hE.default,new pE.default(e),new mE.default,new gE.default,new EE.default,new yE.default],refiners:[new _E.default,new TE.default]},r)}Oe.createConfiguration=Xu});var Jh=p(Pt=>{"use strict";var DE=Pt&&Pt.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),OE=Pt&&Pt.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),PE=Pt&&Pt.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&DE(e,r,t);return OE(e,r),e},kE=Pt&&Pt.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Pt,"__esModule",{value:!0});var AE=kE(X()),SE=we(),NE=M(),Qh=ht(),Zs=PE(er()),Zu=class extends NE.AbstractParserWithWordBoundaryChecking{innerPattern(e){return/(maintenant|aujourd'hui|demain|hier|cette\s*nuit|la\s*veille)(?=\W|$)/i}innerExtract(e,t){let n=AE.default(e.refDate),i=t[0].toLowerCase(),s=e.createParsingComponents();switch(i){case"maintenant":return Zs.now(e.reference);case"aujourd'hui":return Zs.today(e.reference);case"hier":return Zs.yesterday(e.reference);case"demain":return Zs.tomorrow(e.reference);default:i.match(/cette\s*nuit/)?(Qh.assignSimilarDate(s,n),s.imply("hour",22),s.imply("meridiem",SE.Meridiem.PM)):i.match(/la\s*veille/)&&(n=n.add(-1,"day"),Qh.assignSimilarDate(s,n),s.imply("hour",0))}return s}};Pt.default=Zu});var em=p(Ju=>{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});var Ti=we(),xE=M(),Qu=class extends xE.AbstractParserWithWordBoundaryChecking{innerPattern(e){return/(cet?)?\s*(matin|soir|après-midi|aprem|a midi|à minuit)(?=\W|$)/i}innerExtract(e,t){let n=t[2].toLowerCase(),i=e.createParsingComponents();switch(n){case"apr\xE8s-midi":case"aprem":i.imply("hour",14),i.imply("minute",0),i.imply("meridiem",Ti.Meridiem.PM);break;case"soir":i.imply("hour",18),i.imply("minute",0),i.imply("meridiem",Ti.Meridiem.PM);break;case"matin":i.imply("hour",8),i.imply("minute",0),i.imply("meridiem",Ti.Meridiem.AM);break;case"a midi":i.imply("hour",12),i.imply("minute",0),i.imply("meridiem",Ti.Meridiem.AM);break;case"\xE0 minuit":i.imply("hour",0),i.imply("meridiem",Ti.Meridiem.AM);break}return i}};Ju.default=Qu});var tm=p(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var CE=Ur(),el=class extends CE.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:[\xE0a])\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*"}extractPrimaryTimeComponents(e,t){return t[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(e,t)}};tl.default=el});var rm=p(bi=>{"use strict";var IE=bi&&bi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(bi,"__esModule",{value:!0});var FE=IE(Zt()),rl=class extends FE.default{patternBetween(){return new RegExp("^\\s*(T|\xE0|a|vers|de|,|-)?\\s*$")}};bi.default=rl});var nm=p(vi=>{"use strict";var UE=vi&&vi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(vi,"__esModule",{value:!0});var qE=UE(Yt()),nl=class extends qE.default{patternBetween(){return/^\s*(à|a|-)\s*$/i}};vi.default=nl});var wr=p(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.parseTimeUnits=Z.TIME_UNITS_PATTERN=Z.parseYear=Z.YEAR_PATTERN=Z.parseOrdinalNumberPattern=Z.ORDINAL_NUMBER_PATTERN=Z.parseNumberPattern=Z.NUMBER_PATTERN=Z.TIME_UNIT_DICTIONARY=Z.INTEGER_WORD_DICTIONARY=Z.MONTH_DICTIONARY=Z.WEEKDAY_DICTIONARY=void 0;var il=re();Z.WEEKDAY_DICTIONARY={dimanche:0,dim:0,lundi:1,lun:1,mardi:2,mar:2,mercredi:3,mer:3,jeudi:4,jeu:4,vendredi:5,ven:5,samedi:6,sam:6};Z.MONTH_DICTIONARY={janvier:1,jan:1,"jan.":1,f\u00E9vrier:2,f\u00E9v:2,"f\xE9v.":2,fevrier:2,fev:2,"fev.":2,mars:3,mar:3,"mar.":3,avril:4,avr:4,"avr.":4,mai:5,juin:6,jun:6,juillet:7,juil:7,jul:7,"jul.":7,ao\u00FBt:8,aout:8,septembre:9,sep:9,"sep.":9,sept:9,"sept.":9,octobre:10,oct:10,"oct.":10,novembre:11,nov:11,"nov.":11,d\u00E9cembre:12,decembre:12,dec:12,"dec.":12};Z.INTEGER_WORD_DICTIONARY={un:1,deux:2,trois:3,quatre:4,cinq:5,six:6,sept:7,huit:8,neuf:9,dix:10,onze:11,douze:12,treize:13};Z.TIME_UNIT_DICTIONARY={sec:"second",seconde:"second",secondes:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",heure:"hour",heures:"hour",jour:"d",jours:"d",semaine:"week",semaines:"week",mois:"month",trimestre:"quarter",trimestres:"quarter",ans:"year",ann\u00E9e:"year",ann\u00E9es:"year"};Z.NUMBER_PATTERN=`(?:${il.matchAnyPattern(Z.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|une?\\b|quelques?|demi-?)`;function sm(r){let e=r.toLowerCase();return Z.INTEGER_WORD_DICTIONARY[e]!==void 0?Z.INTEGER_WORD_DICTIONARY[e]:e==="une"||e==="un"?1:e.match(/quelques?/)?3:e.match(/demi-?/)?.5:parseFloat(e)}Z.parseNumberPattern=sm;Z.ORDINAL_NUMBER_PATTERN="(?:[0-9]{1,2}(?:er)?)";function LE(r){let e=r.toLowerCase();return e=e.replace(/(?:er)$/i,""),parseInt(e)}Z.parseOrdinalNumberPattern=LE;Z.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s*(?:AC|AD|p\\.\\s*C(?:hr?)?\\.\\s*n\\.)|[1-2][0-9]{3}|[5-9][0-9])";function WE(r){if(/AC/i.test(r))return r=r.replace(/BC/i,""),-parseInt(r);if(/AD/i.test(r)||/C/i.test(r))return r=r.replace(/[^\d]+/i,""),parseInt(r);let e=parseInt(r);return e<100&&(e>50?e=e+1900:e=e+2e3),e}Z.parseYear=WE;var am=`(${Z.NUMBER_PATTERN})\\s{0,5}(${il.matchAnyPattern(Z.TIME_UNIT_DICTIONARY)})\\s{0,5}`,im=new RegExp(am,"i");Z.TIME_UNITS_PATTERN=il.repeatedTimeunitPattern("",am);function YE(r){let e={},t=r,n=im.exec(t);for(;n;)$E(e,n),t=t.substring(n[0].length),n=im.exec(t);return e}Z.parseTimeUnits=YE;function $E(r,e){let t=sm(e[1]),n=Z.TIME_UNIT_DICTIONARY[e[2].toLowerCase()];r[n]=t}});var um=p(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var om=wr(),jE=re(),BE=M(),GE=Lr(),HE=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(?:ce)\\s*)?(${jE.matchAnyPattern(om.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(dernier|prochain)\\s*)?(?=\\W|\\d|$)`,"i"),zE=1,KE=2,sl=class extends BE.AbstractParserWithWordBoundaryChecking{innerPattern(){return HE}innerExtract(e,t){let n=t[zE].toLowerCase(),i=om.WEEKDAY_DICTIONARY[n];if(i===void 0)return null;let s=t[KE];s=s||"",s=s.toLowerCase();let a=null;s=="dernier"?a="last":s=="prochain"&&(a="next");let o=GE.toDayJSWeekday(e.refDate,i,a);return e.createParsingComponents().assign("weekday",i).imply("day",o.date()).imply("month",o.month()+1).imply("year",o.year())}};al.default=sl});var fm=p(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var Ei=we(),VE=new RegExp("(^|\\s|T)(?:(?:[\xE0a])\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),XE=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),ZE=2,lm=3,cm=4,dm=5,Rn=class{pattern(e){return VE}extract(e,t){let n=e.createParsingResult(t.index+t[1].length,t[0].substring(t[1].length));if(n.text.match(/^\d{4}$/)||(n.start=Rn.extractTimeComponent(n.start.clone(),t),!n.start))return t.index+=t[0].length,null;let i=e.text.substring(t.index+t[0].length),s=XE.exec(i);return s&&(n.end=Rn.extractTimeComponent(n.start.clone(),s),n.end&&(n.text+=s[0])),n}static extractTimeComponent(e,t){let n=0,i=0,s=null;if(n=parseInt(t[ZE]),t[lm]!=null&&(i=parseInt(t[lm])),i>=60||n>24)return null;if(n>=12&&(s=Ei.Meridiem.PM),t[dm]!=null){if(n>12)return null;let a=t[dm][0].toLowerCase();a=="a"&&(s=Ei.Meridiem.AM,n==12&&(n=0)),a=="p"&&(s=Ei.Meridiem.PM,n!=12&&(n+=12))}if(e.assign("hour",n),e.assign("minute",i),s!==null?e.assign("meridiem",s):n<12?e.imply("meridiem",Ei.Meridiem.AM):e.imply("meridiem",Ei.Meridiem.PM),t[cm]!=null){let a=parseInt(t[cm]);if(a>=60)return null;e.assign("second",a)}return e}};ol.default=Rn});var _m=p(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});var QE=Ue(),ym=wr(),gm=wr(),Qs=wr(),JE=re(),e0=M(),t0=new RegExp(`(?:on\\s*?)?(${Qs.ORDINAL_NUMBER_PATTERN})(?:\\s*(?:au|\\-|\\\u2013|jusqu'au?|\\s)\\s*(${Qs.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s*(?:de)?\\s*)(${JE.matchAnyPattern(ym.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s*)(${gm.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),pm=1,hm=2,r0=3,mm=4,ul=class extends e0.AbstractParserWithWordBoundaryChecking{innerPattern(){return t0}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=ym.MONTH_DICTIONARY[t[r0].toLowerCase()],s=Qs.parseOrdinalNumberPattern(t[pm]);if(s>31)return t.index=t.index+t[pm].length,null;if(n.start.assign("month",i),n.start.assign("day",s),t[mm]){let a=gm.parseYear(t[mm]);n.start.assign("year",a)}else{let a=QE.findYearClosestToRef(e.refDate,s,i);n.start.imply("year",a)}if(t[hm]){let a=Qs.parseOrdinalNumberPattern(t[hm]);n.end=n.start.clone(),n.end.assign("day",a)}return n}};ll.default=ul});var bm=p(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var Tm=wr(),n0=me(),i0=M(),s0=mt(),cl=class extends i0.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`il y a\\s*(${Tm.TIME_UNITS_PATTERN})(?=(?:\\W|$))`,"i")}innerExtract(e,t){let n=Tm.parseTimeUnits(t[1]),i=s0.reverseTimeUnits(n);return n0.ParsingComponents.createRelativeFromReference(e.reference,i)}};dl.default=cl});var Em=p(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var vm=wr(),a0=me(),o0=M(),fl=class extends o0.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp(`(?:dans|en|pour|pendant|de)\\s*(${vm.TIME_UNITS_PATTERN})(?=\\W|$)`,"i")}innerExtract(e,t){let n=vm.parseTimeUnits(t[1]);return a0.ParsingComponents.createRelativeFromReference(e.reference,n)}};pl.default=fl});var wm=p(ml=>{"use strict";Object.defineProperty(ml,"__esModule",{value:!0});var Js=wr(),u0=me(),l0=M(),c0=mt(),d0=re(),hl=class extends l0.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`(?:les?|la|l'|du|des?)\\s*(${Js.NUMBER_PATTERN})?(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?\\s*(${d0.matchAnyPattern(Js.TIME_UNIT_DICTIONARY)})(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?`,"i")}innerExtract(e,t){let n=t[1]?Js.parseNumberPattern(t[1]):1,i=Js.TIME_UNIT_DICTIONARY[t[3].toLowerCase()],s={};s[i]=n;let a=t[2]||t[4]||"";if(a=a.toLowerCase(),!!a)return(/derni[eè]re?s?/.test(a)||/pass[ée]e?s?/.test(a)||/pr[ée]c[ée]dents?/.test(a))&&(s=c0.reverseTimeUnits(s)),u0.ParsingComponents.createRelativeFromReference(e.reference,s)}};ml.default=hl});var Dm=p(Pe=>{"use strict";var yt=Pe&&Pe.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.createConfiguration=Pe.createCasualConfiguration=Pe.parseDate=Pe.parse=Pe.strict=Pe.casual=void 0;var f0=Qt(),Rm=Mt(),p0=yt(Jh()),h0=yt(em()),m0=yt(Wr()),y0=yt(tm()),g0=yt(rm()),_0=yt(nm()),T0=yt(um()),b0=yt(fm()),v0=yt(_m()),E0=yt(bm()),w0=yt(Em()),R0=yt(wm());Pe.casual=new Rm.Chrono(Mm());Pe.strict=new Rm.Chrono(yl(!0));function M0(r,e,t){return Pe.casual.parse(r,e,t)}Pe.parse=M0;function D0(r,e,t){return Pe.casual.parseDate(r,e,t)}Pe.parseDate=D0;function Mm(r=!0){let e=yl(!1,r);return e.parsers.unshift(new p0.default),e.parsers.unshift(new h0.default),e.parsers.unshift(new R0.default),e}Pe.createCasualConfiguration=Mm;function yl(r=!0,e=!0){return f0.includeCommonConfiguration({parsers:[new m0.default(e),new v0.default,new y0.default,new b0.default,new E0.default,new w0.default,new T0.default],refiners:[new g0.default,new _0.default]},r)}Pe.createConfiguration=yl});var Om=p(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.toHankaku=void 0;function O0(r){return String(r).replace(/\u2019/g,"'").replace(/\u201D/g,'"').replace(/\u3000/g," ").replace(/\uFFE5/g,"\xA5").replace(/[\uFF01\uFF03-\uFF06\uFF08\uFF09\uFF0C-\uFF19\uFF1C-\uFF1F\uFF21-\uFF3B\uFF3D\uFF3F\uFF41-\uFF5B\uFF5D\uFF5E]/g,P0)}ea.toHankaku=O0;function P0(r){return String.fromCharCode(r.charCodeAt(0)-65248)}});var km=p(wi=>{"use strict";var k0=wi&&wi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(wi,"__esModule",{value:!0});var gl=Om(),A0=Ue(),S0=k0(X()),N0=/(?:(?:([同今本])|((昭和|平成|令和)?([0-90-9]{1,4}|元)))年\s*)?([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i,Pm=1,x0=2,_l=3,C0=4,I0=5,F0=6,Tl=class{pattern(){return N0}extract(e,t){let n=parseInt(gl.toHankaku(t[I0])),i=parseInt(gl.toHankaku(t[F0])),s=e.createParsingComponents({day:i,month:n});if(t[Pm]&&t[Pm].match("\u540C|\u4ECA|\u672C")){let a=S0.default(e.refDate);s.assign("year",a.year())}if(t[x0]){let a=t[C0],o=a=="\u5143"?1:parseInt(gl.toHankaku(a));t[_l]=="\u4EE4\u548C"?o+=2018:t[_l]=="\u5E73\u6210"?o+=1988:t[_l]=="\u662D\u548C"&&(o+=1925),s.assign("year",o)}else{let a=A0.findYearClosestToRef(e.refDate,i,n);s.imply("year",a)}return s}};wi.default=Tl});var Am=p(Ri=>{"use strict";var U0=Ri&&Ri.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ri,"__esModule",{value:!0});var q0=U0(Yt()),bl=class extends q0.default{patternBetween(){return/^\s*(から|ー|-)\s*$/i}};Ri.default=bl});var Nm=p(kt=>{"use strict";var L0=kt&&kt.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),W0=kt&&kt.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),Y0=kt&&kt.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&L0(e,r,t);return W0(e,r),e},$0=kt&&kt.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(kt,"__esModule",{value:!0});var j0=$0(X()),Sm=we(),vl=Y0(er()),B0=/今日|当日|昨日|明日|今夜|今夕|今晩|今朝/i,El=class{pattern(){return B0}extract(e,t){let n=t[0],i=j0.default(e.refDate),s=e.createParsingComponents();switch(n){case"\u6628\u65E5":return vl.yesterday(e.reference);case"\u660E\u65E5":return vl.tomorrow(e.reference);case"\u4ECA\u65E5":case"\u5F53\u65E5":return vl.today(e.reference)}return n=="\u4ECA\u591C"||n=="\u4ECA\u5915"||n=="\u4ECA\u6669"?(s.imply("hour",22),s.assign("meridiem",Sm.Meridiem.PM)):n.match("\u4ECA\u671D")&&(s.imply("hour",6),s.assign("meridiem",Sm.Meridiem.AM)),s.assign("day",i.date()),s.assign("month",i.month()+1),s.assign("year",i.year()),s}};kt.default=El});var Im=p(ke=>{"use strict";var wl=ke&&ke.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ke,"__esModule",{value:!0});ke.createConfiguration=ke.createCasualConfiguration=ke.parseDate=ke.parse=ke.strict=ke.casual=void 0;var G0=wl(km()),H0=wl(Am()),z0=wl(Nm()),xm=Mt();ke.casual=new xm.Chrono(Cm());ke.strict=new xm.Chrono(Rl());function K0(r,e,t){return ke.casual.parse(r,e,t)}ke.parse=K0;function V0(r,e,t){return ke.casual.parseDate(r,e,t)}ke.parseDate=V0;function Cm(){let r=Rl();return r.parsers.unshift(new z0.default),r}ke.createCasualConfiguration=Cm;function Rl(){return{parsers:[new G0.default],refiners:[new H0.default]}}ke.createConfiguration=Rl});var ta=p(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.parseYear=jt.YEAR_PATTERN=jt.MONTH_DICTIONARY=jt.WEEKDAY_DICTIONARY=void 0;jt.WEEKDAY_DICTIONARY={domingo:0,dom:0,segunda:1,"segunda-feira":1,seg:1,ter\u00E7a:2,"ter\xE7a-feira":2,ter:2,quarta:3,"quarta-feira":3,qua:3,quinta:4,"quinta-feira":4,qui:4,sexta:5,"sexta-feira":5,sex:5,s\u00E1bado:6,sabado:6,sab:6};jt.MONTH_DICTIONARY={janeiro:1,jan:1,"jan.":1,fevereiro:2,fev:2,"fev.":2,mar\u00E7o:3,mar:3,"mar.":3,abril:4,abr:4,"abr.":4,maio:5,mai:5,"mai.":5,junho:6,jun:6,"jun.":6,julho:7,jul:7,"jul.":7,agosto:8,ago:8,"ago.":8,setembro:9,set:9,"set.":9,outubro:10,out:10,"out.":10,novembro:11,nov:11,"nov.":11,dezembro:12,dez:12,"dez.":12};jt.YEAR_PATTERN="[0-9]{1,4}(?![^\\s]\\d)(?:\\s*[a|d]\\.?\\s*c\\.?|\\s*a\\.?\\s*d\\.?)?";function X0(r){if(r.match(/^[0-9]{1,4}$/)){let e=parseInt(r);return e<100&&(e>50?e=e+1900:e=e+2e3),e}return r.match(/a\.?\s*c\.?/i)?(r=r.replace(/a\.?\s*c\.?/i,""),-parseInt(r)):parseInt(r)}jt.parseYear=X0});var Um=p(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});var Fm=ta(),Z0=re(),Q0=M(),J0=Lr(),ew=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(este|esta|passado|pr[o\xF3]ximo)\\s*)?(${Z0.matchAnyPattern(Fm.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(este|esta|passado|pr[\xF3o]ximo)\\s*semana)?(?=\\W|\\d|$)`,"i"),tw=1,rw=2,nw=3,Ml=class extends Q0.AbstractParserWithWordBoundaryChecking{innerPattern(){return ew}innerExtract(e,t){let n=t[rw].toLowerCase(),i=Fm.WEEKDAY_DICTIONARY[n];if(i===void 0)return null;let s=t[tw],a=t[nw],o=s||a||"";o=o.toLowerCase();let u=null;o=="passado"?u="this":o=="pr\xF3ximo"||o=="proximo"?u="next":o=="este"&&(u="this");let l=J0.toDayJSWeekday(e.refDate,i,u);return e.createParsingComponents().assign("weekday",i).imply("day",l.date()).imply("month",l.month()+1).imply("year",l.year())}};Dl.default=Ml});var qm=p(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});var iw=Ur(),Ol=class extends iw.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:ao?|\xE0s?|das|da|de|do)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|a(?:o)?|\\?)\\s*"}};Pl.default=Ol});var Lm=p(Mi=>{"use strict";var sw=Mi&&Mi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Mi,"__esModule",{value:!0});var aw=sw(Zt()),kl=class extends aw.default{patternBetween(){return new RegExp("^\\s*(?:,|\xE0)?\\s*$")}};Mi.default=kl});var Wm=p(Di=>{"use strict";var ow=Di&&Di.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Di,"__esModule",{value:!0});var uw=ow(Yt()),Al=class extends uw.default{patternBetween(){return/^\s*(?:-)\s*$/i}};Di.default=Al});var Hm=p(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var lw=Ue(),Bm=ta(),Gm=ta(),cw=re(),dw=M(),fw=new RegExp(`([0-9]{1,2})(?:\xBA|\xAA|\xB0)?(?:\\s*(?:desde|de|\\-|\\\u2013|ao?|\\s)\\s*([0-9]{1,2})(?:\xBA|\xAA|\xB0)?)?\\s*(?:de)?\\s*(?:-|/|\\s*(?:de|,)?\\s*)(${cw.matchAnyPattern(Bm.MONTH_DICTIONARY)})(?:\\s*(?:de|,)?\\s*(${Gm.YEAR_PATTERN}))?(?=\\W|$)`,"i"),Ym=1,$m=2,pw=3,jm=4,Sl=class extends dw.AbstractParserWithWordBoundaryChecking{innerPattern(){return fw}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=Bm.MONTH_DICTIONARY[t[pw].toLowerCase()],s=parseInt(t[Ym]);if(s>31)return t.index=t.index+t[Ym].length,null;if(n.start.assign("month",i),n.start.assign("day",s),t[jm]){let a=Gm.parseYear(t[jm]);n.start.assign("year",a)}else{let a=lw.findYearClosestToRef(e.refDate,s,i);n.start.imply("year",a)}if(t[$m]){let a=parseInt(t[$m]);n.end=n.start.clone(),n.end.assign("day",a)}return n}};Nl.default=Sl});var zm=p(tr=>{"use strict";var hw=tr&&tr.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),mw=tr&&tr.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),yw=tr&&tr.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&hw(e,r,t);return mw(e,r),e};Object.defineProperty(tr,"__esModule",{value:!0});var gw=M(),ra=yw(er()),xl=class extends gw.AbstractParserWithWordBoundaryChecking{innerPattern(e){return/(agora|hoje|amanha|amanhã|ontem)(?=\W|$)/i}innerExtract(e,t){let n=t[0].toLowerCase(),i=e.createParsingComponents();switch(n){case"agora":return ra.now(e.reference);case"hoje":return ra.today(e.reference);case"amanha":case"amanh\xE3":return ra.tomorrow(e.reference);case"ontem":return ra.yesterday(e.reference)}return i}};tr.default=xl});var Km=p(Oi=>{"use strict";var _w=Oi&&Oi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Oi,"__esModule",{value:!0});var na=we(),Tw=M(),bw=ht(),vw=_w(X()),Cl=class extends Tw.AbstractParserWithWordBoundaryChecking{innerPattern(){return/(?:esta\s*)?(manha|manhã|tarde|meia-noite|meio-dia|noite)(?=\W|$)/i}innerExtract(e,t){let n=vw.default(e.refDate),i=e.createParsingComponents();switch(t[1].toLowerCase()){case"tarde":i.imply("meridiem",na.Meridiem.PM),i.imply("hour",15);break;case"noite":i.imply("meridiem",na.Meridiem.PM),i.imply("hour",22);break;case"manha":case"manh\xE3":i.imply("meridiem",na.Meridiem.AM),i.imply("hour",6);break;case"meia-noite":bw.assignTheNextDay(i,n),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"meio-dia":i.imply("meridiem",na.Meridiem.AM),i.imply("hour",12);break}return i}};Oi.default=Cl});var Zm=p(Ae=>{"use strict";var Rr=Ae&&Ae.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.createConfiguration=Ae.createCasualConfiguration=Ae.parseDate=Ae.parse=Ae.strict=Ae.casual=void 0;var Ew=Qt(),Vm=Mt(),ww=Rr(Wr()),Rw=Rr(Um()),Mw=Rr(qm()),Dw=Rr(Lm()),Ow=Rr(Wm()),Pw=Rr(Hm()),kw=Rr(zm()),Aw=Rr(Km());Ae.casual=new Vm.Chrono(Xm());Ae.strict=new Vm.Chrono(Il(!0));function Sw(r,e,t){return Ae.casual.parse(r,e,t)}Ae.parse=Sw;function Nw(r,e,t){return Ae.casual.parseDate(r,e,t)}Ae.parseDate=Nw;function Xm(r=!0){let e=Il(!1,r);return e.parsers.push(new kw.default),e.parsers.push(new Aw.default),e}Ae.createCasualConfiguration=Xm;function Il(r=!0,e=!0){return Ew.includeCommonConfiguration({parsers:[new ww.default(e),new Rw.default,new Mw.default,new Pw.default],refiners:[new Dw.default,new Ow.default]},r)}Ae.createConfiguration=Il});var Qm=p(Pi=>{"use strict";var xw=Pi&&Pi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Pi,"__esModule",{value:!0});var Cw=xw(Yt()),Fl=class extends Cw.default{patternBetween(){return/^\s*(tot|-)\s*$/i}};Pi.default=Fl});var Jm=p(ki=>{"use strict";var Iw=ki&&ki.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ki,"__esModule",{value:!0});var Fw=Iw(Zt()),Ul=class extends Fw.default{patternBetween(){return new RegExp("^\\s*(om|na|voor|in de|,|-)?\\s*$")}};ki.default=Ul});var ey=p(rr=>{"use strict";var Uw=rr&&rr.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),qw=rr&&rr.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),Lw=rr&&rr.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&Uw(e,r,t);return qw(e,r),e};Object.defineProperty(rr,"__esModule",{value:!0});var Ww=M(),ia=Lw(er()),ql=class extends Ww.AbstractParserWithWordBoundaryChecking{innerPattern(e){return/(nu|vandaag|morgen|morgend|gisteren)(?=\W|$)/i}innerExtract(e,t){let n=t[0].toLowerCase(),i=e.createParsingComponents();switch(n){case"nu":return ia.now(e.reference);case"vandaag":return ia.today(e.reference);case"morgen":case"morgend":return ia.tomorrow(e.reference);case"gisteren":return ia.yesterday(e.reference)}return i}};rr.default=ql});var ty=p(Ai=>{"use strict";var Yw=Ai&&Ai.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ai,"__esModule",{value:!0});var sa=we(),$w=M(),jw=Yw(X()),Bw=ht(),Gw=1,Hw=2,Ll=class extends $w.AbstractParserWithWordBoundaryChecking{innerPattern(){return/(deze)?\s*(namiddag|avond|middernacht|ochtend|middag|'s middags|'s avonds|'s ochtends)(?=\W|$)/i}innerExtract(e,t){let n=jw.default(e.refDate),i=e.createParsingComponents();switch(t[Gw]==="deze"&&(i.assign("day",e.refDate.getDate()),i.assign("month",e.refDate.getMonth()+1),i.assign("year",e.refDate.getFullYear())),t[Hw].toLowerCase()){case"namiddag":case"'s namiddags":i.imply("meridiem",sa.Meridiem.PM),i.imply("hour",15);break;case"avond":case"'s avonds'":i.imply("meridiem",sa.Meridiem.PM),i.imply("hour",20);break;case"middernacht":Bw.assignTheNextDay(i,n),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"ochtend":case"'s ochtends":i.imply("meridiem",sa.Meridiem.AM),i.imply("hour",6);break;case"middag":case"'s middags":i.imply("meridiem",sa.Meridiem.AM),i.imply("hour",12);break}return i}};Ai.default=Ll});var st=p(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.parseTimeUnits=j.TIME_UNITS_PATTERN=j.parseYear=j.YEAR_PATTERN=j.parseOrdinalNumberPattern=j.ORDINAL_NUMBER_PATTERN=j.parseNumberPattern=j.NUMBER_PATTERN=j.TIME_UNIT_DICTIONARY=j.ORDINAL_WORD_DICTIONARY=j.INTEGER_WORD_DICTIONARY=j.MONTH_DICTIONARY=j.WEEKDAY_DICTIONARY=void 0;var aa=re(),zw=Ue();j.WEEKDAY_DICTIONARY={zondag:0,zon:0,"zon.":0,zo:0,"zo.":0,maandag:1,ma:1,"ma.":1,dinsdag:2,din:2,"din.":2,di:2,"di.":2,woensdag:3,woe:3,"woe.":3,wo:3,"wo.":3,donderdag:4,dond:4,"dond.":4,do:4,"do.":4,vrijdag:5,vrij:5,"vrij.":5,vr:5,"vr.":5,zaterdag:6,zat:6,"zat.":6,za:6,"za.":6};j.MONTH_DICTIONARY={januari:1,jan:1,"jan.":1,februari:2,feb:2,"feb.":2,maart:3,mar:3,"mar.":3,april:4,apr:4,"apr.":4,mei:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,augustus:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,december:12,dec:12,"dec.":12};j.INTEGER_WORD_DICTIONARY={een:1,twee:2,drie:3,vier:4,vijf:5,zes:6,zeven:7,acht:8,negen:9,tien:10,elf:11,twaalf:12};j.ORDINAL_WORD_DICTIONARY={eerste:1,tweede:2,derde:3,vierde:4,vijfde:5,zesde:6,zevende:7,achtste:8,negende:9,tiende:10,elfde:11,twaalfde:12,dertiende:13,veertiende:14,vijftiende:15,zestiende:16,zeventiende:17,achttiende:18,negentiende:19,twintigste:20,eenentwintigste:21,twee\u00EBntwintigste:22,drieentwintigste:23,vierentwintigste:24,vijfentwintigste:25,zesentwintigste:26,zevenentwintigste:27,achtentwintig:28,negenentwintig:29,dertigste:30,eenendertigste:31};j.TIME_UNIT_DICTIONARY={sec:"second",second:"second",seconden:"second",min:"minute",mins:"minute",minute:"minute",minuut:"minute",minuten:"minute",minuutje:"minute",h:"hour",hr:"hour",hrs:"hour",uur:"hour",u:"hour",uren:"hour",dag:"d",dagen:"d",week:"week",weken:"week",maand:"month",maanden:"month",jaar:"year",jr:"year",jaren:"year"};j.NUMBER_PATTERN=`(?:${aa.matchAnyPattern(j.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+[\\.,][0-9]+|halve?|half|paar)`;function ny(r){let e=r.toLowerCase();return j.INTEGER_WORD_DICTIONARY[e]!==void 0?j.INTEGER_WORD_DICTIONARY[e]:e==="paar"?2:e==="half"||e.match(/halve?/)?.5:parseFloat(e.replace(",","."))}j.parseNumberPattern=ny;j.ORDINAL_NUMBER_PATTERN=`(?:${aa.matchAnyPattern(j.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:ste|de)?)`;function Kw(r){let e=r.toLowerCase();return j.ORDINAL_WORD_DICTIONARY[e]!==void 0?j.ORDINAL_WORD_DICTIONARY[e]:(e=e.replace(/(?:ste|de)$/i,""),parseInt(e))}j.parseOrdinalNumberPattern=Kw;j.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s*(?:voor Christus|na Christus)|[1-2][0-9]{3}|[5-9][0-9])";function Vw(r){if(/voor Christus/i.test(r))return r=r.replace(/voor Christus/i,""),-parseInt(r);if(/na Christus/i.test(r))return r=r.replace(/na Christus/i,""),parseInt(r);let e=parseInt(r);return zw.findMostLikelyADYear(e)}j.parseYear=Vw;var iy=`(${j.NUMBER_PATTERN})\\s{0,5}(${aa.matchAnyPattern(j.TIME_UNIT_DICTIONARY)})\\s{0,5}`,ry=new RegExp(iy,"i");j.TIME_UNITS_PATTERN=aa.repeatedTimeunitPattern("(?:(?:binnen|in)\\s*)?",iy);function Xw(r){let e={},t=r,n=ry.exec(t);for(;n;)Zw(e,n),t=t.substring(n[0].length),n=ry.exec(t);return e}j.parseTimeUnits=Xw;function Zw(r,e){let t=ny(e[1]),n=j.TIME_UNIT_DICTIONARY[e[2].toLowerCase()];r[n]=t}});var ay=p(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});var sy=st(),Qw=me(),Jw=M(),Wl=class extends Jw.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(?:binnen|in|binnen de|voor)\\s*("+sy.TIME_UNITS_PATTERN+")(?=\\W|$)","i")}innerExtract(e,t){let n=sy.parseTimeUnits(t[1]);return Qw.ParsingComponents.createRelativeFromReference(e.reference,n)}};Yl.default=Wl});var uy=p(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});var oy=st(),eR=re(),tR=M(),rR=Lr(),nR=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:op\\s*?)?(?:(deze|vorige|volgende)\\s*(?:week\\s*)?)?(${eR.matchAnyPattern(oy.WEEKDAY_DICTIONARY)})(?=\\W|$)`,"i"),iR=1,sR=2,aR=3,$l=class extends tR.AbstractParserWithWordBoundaryChecking{innerPattern(){return nR}innerExtract(e,t){let n=t[sR].toLowerCase(),i=oy.WEEKDAY_DICTIONARY[n],s=t[iR],a=t[aR],o=s||a;o=o||"",o=o.toLowerCase();let u=null;o=="vorige"?u="last":o=="volgende"?u="next":o=="deze"&&(u="this");let l=rR.toDayJSWeekday(e.refDate,i,u);return e.createParsingComponents().assign("weekday",i).imply("day",l.date()).imply("month",l.month()+1).imply("year",l.year())}};jl.default=$l});var hy=p(Gl=>{"use strict";Object.defineProperty(Gl,"__esModule",{value:!0});var oR=Ue(),fy=st(),oa=st(),py=st(),uR=re(),lR=M(),cR=new RegExp(`(?:on\\s*?)?(${oa.ORDINAL_NUMBER_PATTERN})(?:\\s*(?:tot|\\-|\\\u2013|until|through|till|\\s)\\s*(${oa.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s*(?:of)?\\s*)(`+uR.matchAnyPattern(fy.MONTH_DICTIONARY)+`)(?:(?:-|/|,?\\s*)(${py.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),dR=3,ly=1,cy=2,dy=4,Bl=class extends lR.AbstractParserWithWordBoundaryChecking{innerPattern(){return cR}innerExtract(e,t){let n=fy.MONTH_DICTIONARY[t[dR].toLowerCase()],i=oa.parseOrdinalNumberPattern(t[ly]);if(i>31)return t.index=t.index+t[ly].length,null;let s=e.createParsingComponents({day:i,month:n});if(t[dy]){let u=py.parseYear(t[dy]);s.assign("year",u)}else{let u=oR.findYearClosestToRef(e.refDate,i,n);s.imply("year",u)}if(!t[cy])return s;let a=oa.parseOrdinalNumberPattern(t[cy]),o=e.createParsingResult(t.index,t[0]);return o.start=s,o.end=s.clone(),o.end.assign("day",a),o}};Gl.default=Bl});var _y=p(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});var yy=st(),fR=Ue(),pR=re(),gy=st(),hR=M(),mR=new RegExp(`(${pR.matchAnyPattern(yy.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${gy.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),yR=1,my=2,Hl=class extends hR.AbstractParserWithWordBoundaryChecking{innerPattern(){return mR}innerExtract(e,t){let n=e.createParsingComponents();n.imply("day",1);let i=t[yR],s=yy.MONTH_DICTIONARY[i.toLowerCase()];if(n.assign("month",s),t[my]){let a=gy.parseYear(t[my]);n.assign("year",a)}else{let a=fR.findYearClosestToRef(e.refDate,1,s);n.imply("year",a)}return n}};zl.default=Hl});var Ty=p(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});var gR=M(),_R=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),TR=1,bR=2,Kl=class extends gR.AbstractParserWithWordBoundaryChecking{innerPattern(){return _R}innerExtract(e,t){let n=parseInt(t[bR]),i=parseInt(t[TR]);return e.createParsingComponents().imply("day",1).assign("month",i).assign("year",n)}};Vl.default=Kl});var by=p(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});var vR=Ur(),Xl=class extends vR.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:om)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|om|\\?)\\s*"}primarySuffix(){return"(?:\\s*(?:uur))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(e,t){return t[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(e,t)}};Zl.default=Xl});var wy=p(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});var Ey=st(),ER=re(),wR=M(),RR=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${ER.matchAnyPattern(Ey.MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),MR=1,DR=2,vy=3,OR=4,Ql=class extends wR.AbstractParserWithWordBoundaryChecking{innerPattern(){return RR}innerExtract(e,t){let n=t[vy]?parseInt(t[vy]):Ey.MONTH_DICTIONARY[t[DR].toLowerCase()];if(n<1||n>12)return null;let i=parseInt(t[MR]);return{day:parseInt(t[OR]),month:n,year:i}}};Jl.default=Ql});var Ry=p(Si=>{"use strict";var PR=Si&&Si.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Si,"__esModule",{value:!0});var kR=M(),ua=we(),ec=ht(),AR=PR(X()),SR=1,NR=2,tc=class extends kR.AbstractParserWithWordBoundaryChecking{innerPattern(e){return/(gisteren|morgen|van)(ochtend|middag|namiddag|avond|nacht)(?=\W|$)/i}innerExtract(e,t){let n=t[SR].toLowerCase(),i=t[NR].toLowerCase(),s=e.createParsingComponents(),a=AR.default(e.refDate);switch(n){case"gisteren":ec.assignSimilarDate(s,a.add(-1,"day"));break;case"van":ec.assignSimilarDate(s,a);break;case"morgen":ec.assignTheNextDay(s,a);break}switch(i){case"ochtend":s.imply("meridiem",ua.Meridiem.AM),s.imply("hour",6);break;case"middag":s.imply("meridiem",ua.Meridiem.AM),s.imply("hour",12);break;case"namiddag":s.imply("meridiem",ua.Meridiem.PM),s.imply("hour",15);break;case"avond":s.imply("meridiem",ua.Meridiem.PM),s.imply("hour",20);break}return s}};Si.default=tc});var Dy=p(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var My=st(),xR=me(),CR=M(),IR=mt(),FR=new RegExp(`(deze|vorige|afgelopen|komende|over|\\+|-)\\s*(${My.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),rc=class extends CR.AbstractParserWithWordBoundaryChecking{innerPattern(){return FR}innerExtract(e,t){let n=t[1].toLowerCase(),i=My.parseTimeUnits(t[2]);switch(n){case"vorige":case"afgelopen":case"-":i=IR.reverseTimeUnits(i);break}return xR.ParsingComponents.createRelativeFromReference(e.reference,i)}};nc.default=rc});var ky=p(Ni=>{"use strict";var UR=Ni&&Ni.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ni,"__esModule",{value:!0});var Py=st(),Oy=me(),qR=UR(X()),LR=M(),WR=re(),YR=new RegExp(`(dit|deze|komende|volgend|volgende|afgelopen|vorige)\\s*(${WR.matchAnyPattern(Py.TIME_UNIT_DICTIONARY)})(?=\\s*)(?=\\W|$)`,"i"),$R=1,jR=2,ic=class extends LR.AbstractParserWithWordBoundaryChecking{innerPattern(){return YR}innerExtract(e,t){let n=t[$R].toLowerCase(),i=t[jR].toLowerCase(),s=Py.TIME_UNIT_DICTIONARY[i];if(n=="volgend"||n=="volgende"||n=="komende"){let u={};return u[s]=1,Oy.ParsingComponents.createRelativeFromReference(e.reference,u)}if(n=="afgelopen"||n=="vorige"){let u={};return u[s]=-1,Oy.ParsingComponents.createRelativeFromReference(e.reference,u)}let a=e.createParsingComponents(),o=qR.default(e.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):i.match(/maand/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):i.match(/jaar/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};Ni.default=ic});var Ay=p(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var ac=st(),BR=me(),GR=M(),HR=mt(),zR=new RegExp("("+ac.TIME_UNITS_PATTERN+")(?:geleden|voor|eerder)(?=(?:\\W|$))","i"),KR=new RegExp("("+ac.TIME_UNITS_PATTERN+")geleden(?=(?:\\W|$))","i"),sc=class extends GR.AbstractParserWithWordBoundaryChecking{constructor(e){super(),this.strictMode=e}innerPattern(){return this.strictMode?KR:zR}innerExtract(e,t){let n=ac.parseTimeUnits(t[1]),i=HR.reverseTimeUnits(n);return BR.ParsingComponents.createRelativeFromReference(e.reference,i)}};oc.default=sc});var Sy=p(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var lc=st(),VR=me(),XR=M(),ZR=new RegExp("("+lc.TIME_UNITS_PATTERN+")(later|na|vanaf nu|voortaan|vooruit|uit)(?=(?:\\W|$))","i"),QR=new RegExp("("+lc.TIME_UNITS_PATTERN+")(later|vanaf nu)(?=(?:\\W|$))","i"),JR=1,uc=class extends XR.AbstractParserWithWordBoundaryChecking{constructor(e){super(),this.strictMode=e}innerPattern(){return this.strictMode?QR:ZR}innerExtract(e,t){let n=lc.parseTimeUnits(t[JR]);return VR.ParsingComponents.createRelativeFromReference(e.reference,n)}};cc.default=uc});var Iy=p(Se=>{"use strict";var Le=Se&&Se.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Se,"__esModule",{value:!0});Se.createConfiguration=Se.createCasualConfiguration=Se.parseDate=Se.parse=Se.strict=Se.casual=void 0;var eM=Qt(),Ny=Mt(),tM=Le(Qm()),rM=Le(Jm()),nM=Le(ey()),iM=Le(ty()),sM=Le(Wr()),aM=Le(ay()),oM=Le(uy()),uM=Le(hy()),xy=Le(_y()),lM=Le(Ty()),cM=Le(by()),dM=Le(wy()),fM=Le(Ry()),pM=Le(Dy()),hM=Le(ky()),mM=Le(Ay()),yM=Le(Sy());Se.casual=new Ny.Chrono(Cy());Se.strict=new Ny.Chrono(dc(!0));function gM(r,e,t){return Se.casual.parse(r,e,t)}Se.parse=gM;function _M(r,e,t){return Se.casual.parseDate(r,e,t)}Se.parseDate=_M;function Cy(r=!0){let e=dc(!1,r);return e.parsers.unshift(new nM.default),e.parsers.unshift(new iM.default),e.parsers.unshift(new fM.default),e.parsers.unshift(new xy.default),e.parsers.unshift(new hM.default),e.parsers.unshift(new pM.default),e}Se.createCasualConfiguration=Cy;function dc(r=!0,e=!0){return eM.includeCommonConfiguration({parsers:[new sM.default(e),new aM.default,new uM.default,new xy.default,new oM.default,new dM.default,new lM.default,new cM.default(r),new mM.default(r),new yM.default(r)],refiners:[new rM.default,new tM.default]},r)}Se.createConfiguration=dc});var Ly=p(xi=>{"use strict";var TM=xi&&xi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(xi,"__esModule",{value:!0});var bM=TM(X()),vM=M(),EM=1,Fy=2,wM=3,Uy=4,qy=5,RM=6,fc=class extends vM.AbstractParserWithWordBoundaryChecking{innerPattern(e){return new RegExp("(\u800C\u5BB6|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(e,t){let n=t.index,i=e.createParsingResult(n,t[0]),s=bM.default(e.refDate),a=s;if(t[EM])i.start.imply("hour",s.hour()),i.start.imply("minute",s.minute()),i.start.imply("second",s.second()),i.start.imply("millisecond",s.millisecond());else if(t[Fy]){let o=t[Fy],u=t[wM];o=="\u660E"||o=="\u807D"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u5F8C"?a=a.add(2,"day"):o=="\u5927\u5F8C"&&(a=a.add(3,"day")),u=="\u65E9"||u=="\u671D"?i.start.imply("hour",6):u=="\u665A"&&(i.start.imply("hour",22),i.start.imply("meridiem",1))}else if(t[Uy]){let u=t[Uy][0];u=="\u65E9"||u=="\u671D"||u=="\u4E0A"?i.start.imply("hour",6):u=="\u4E0B"||u=="\u664F"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):u=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):u=="\u591C"||u=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):u=="\u51CC"&&i.start.imply("hour",0)}else if(t[qy]){let o=t[qy];o=="\u660E"||o=="\u807D"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u5F8C"?a=a.add(2,"day"):o=="\u5927\u5F8C"&&(a=a.add(3,"day"));let u=t[RM];if(u){let l=u[0];l=="\u65E9"||l=="\u671D"||l=="\u4E0A"?i.start.imply("hour",6):l=="\u4E0B"||l=="\u664F"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):l=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):l=="\u51CC"&&i.start.imply("hour",0)}}return i.start.assign("day",a.date()),i.start.assign("month",a.month()+1),i.start.assign("year",a.year()),i}};xi.default=fc});var Mn=p(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.zhStringToYear=Ke.zhStringToNumber=Ke.WEEKDAY_OFFSET=Ke.NUMBER=void 0;Ke.NUMBER={\u96F6:0,\u4E00:1,\u4E8C:2,\u5169:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10,\u5EFF:20,\u5345:30};Ke.WEEKDAY_OFFSET={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6};function MM(r){let e=0;for(let t=0;t{"use strict";var OM=Ci&&Ci.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ci,"__esModule",{value:!0});var PM=OM(X()),kM=M(),jr=Mn(),pc=1,Wy=2,hc=3,mc=class extends kM.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(jr.NUMBER).join("")+"]{4}|["+Object.keys(jr.NUMBER).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(jr.NUMBER).join("")+"]{1,2})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(jr.NUMBER).join("")+"]{1,2})?(?:\\s*)(?:\u65E5|\u865F)?")}innerExtract(e,t){let n=PM.default(e.refDate),i=e.createParsingResult(t.index,t[0]),s=parseInt(t[Wy]);if(isNaN(s)&&(s=jr.zhStringToNumber(t[Wy])),i.start.assign("month",s),t[hc]){let a=parseInt(t[hc]);isNaN(a)&&(a=jr.zhStringToNumber(t[hc])),i.start.assign("day",a)}else i.start.imply("day",n.date());if(t[pc]){let a=parseInt(t[pc]);isNaN(a)&&(a=jr.zhStringToYear(t[pc])),i.start.assign("year",a)}else i.start.imply("year",n.year());return i}};Ci.default=mc});var jy=p(Ii=>{"use strict";var AM=Ii&&Ii.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ii,"__esModule",{value:!0});var SM=AM(X()),NM=M(),$y=Mn(),xM=new RegExp("(\\d+|["+Object.keys($y.NUMBER).join("")+"]+|\u534A|\u5E7E)(?:\\s*)(?:\u500B)?(\u79D2(?:\u9418)?|\u5206\u9418|\u5C0F\u6642|\u9418|\u65E5|\u5929|\u661F\u671F|\u79AE\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u904E)?\u5F8C|(?:\u4E4B)?\u5167)","i"),yc=1,CM=2,gc=class extends NM.AbstractParserWithWordBoundaryChecking{innerPattern(){return xM}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=parseInt(t[yc]);if(isNaN(i)&&(i=$y.zhStringToNumber(t[yc])),isNaN(i)){let u=t[yc];if(u==="\u5E7E")i=3;else if(u==="\u534A")i=.5;else return null}let s=SM.default(e.refDate),o=t[CM][0];return o.match(/[日天星禮月年]/)?(o=="\u65E5"||o=="\u5929"?s=s.add(i,"d"):o=="\u661F"||o=="\u79AE"?s=s.add(i*7,"d"):o=="\u6708"?s=s.add(i,"month"):o=="\u5E74"&&(s=s.add(i,"year")),n.start.assign("year",s.year()),n.start.assign("month",s.month()+1),n.start.assign("day",s.date()),n):(o=="\u79D2"?s=s.add(i,"second"):o=="\u5206"?s=s.add(i,"minute"):(o=="\u5C0F"||o=="\u9418")&&(s=s.add(i,"hour")),n.start.imply("year",s.year()),n.start.imply("month",s.month()+1),n.start.imply("day",s.date()),n.start.assign("hour",s.hour()),n.start.assign("minute",s.minute()),n.start.assign("second",s.second()),n)}};Ii.default=gc});var Gy=p(Fi=>{"use strict";var IM=Fi&&Fi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Fi,"__esModule",{value:!0});var FM=IM(X()),UM=M(),By=Mn(),qM=new RegExp("(?\u4E0A|\u4ECA|\u4E0B|\u9019|\u5462)(?:\u500B)?(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?"+Object.keys(By.WEEKDAY_OFFSET).join("|")+")"),_c=class extends UM.AbstractParserWithWordBoundaryChecking{innerPattern(){return qM}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=t.groups.weekday,s=By.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=null,o=t.groups.prefix;o=="\u4E0A"?a="last":o=="\u4E0B"?a="next":(o=="\u4ECA"||o=="\u9019"||o=="\u5462")&&(a="this");let u=FM.default(e.refDate),l=!1,c=u.day();return a=="last"||a=="past"?(u=u.day(s-7),l=!0):a=="next"?(u=u.day(s+7),l=!0):a=="this"?u=u.day(s):Math.abs(s-7-c){"use strict";var LM=Ui&&Ui.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ui,"__esModule",{value:!0});var WM=LM(X()),YM=M(),_t=Mn(),$M=new RegExp("(?:\u7531|\u5F9E|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(_t.NUMBER).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(_t.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(_t.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),jM=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(_t.NUMBER).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(_t.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(_t.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),la=1,ca=2,da=3,fa=4,pa=5,ha=6,gt=7,Dn=8,ma=9,Tc=class extends YM.AbstractParserWithWordBoundaryChecking{innerPattern(){return $M}innerExtract(e,t){if(t.index>0&&e.text[t.index-1].match(/\w/))return null;let n=WM.default(e.refDate),i=e.createParsingResult(t.index,t[0]),s=n.clone();if(t[la]){var a=t[la];a=="\u660E"||a=="\u807D"?n.hour()>1&&s.add(1,"day"):a=="\u6628"||a=="\u5C0B"||a=="\u7434"?s.add(-1,"day"):a=="\u524D"?s.add(-2,"day"):a=="\u5927\u524D"?s.add(-3,"day"):a=="\u5F8C"?s.add(2,"day"):a=="\u5927\u5F8C"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else if(t[fa]){var o=t[fa];o=="\u660E"||o=="\u807D"?s.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?s.add(-1,"day"):o=="\u524D"?s.add(-2,"day"):o=="\u5927\u524D"?s.add(-3,"day"):o=="\u5F8C"?s.add(2,"day"):o=="\u5927\u5F8C"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else i.start.imply("day",s.date()),i.start.imply("month",s.month()+1),i.start.imply("year",s.year());let u=0,l=0,c=-1;if(t[Dn]){var d=parseInt(t[Dn]);if(isNaN(d)&&(d=_t.zhStringToNumber(t[Dn])),d>=60)return null;i.start.assign("second",d)}if(u=parseInt(t[ha]),isNaN(u)&&(u=_t.zhStringToNumber(t[ha])),t[gt]?t[gt]=="\u534A"?l=30:t[gt]=="\u6B63"||t[gt]=="\u6574"?l=0:(l=parseInt(t[gt]),isNaN(l)&&(l=_t.zhStringToNumber(t[gt]))):u>100&&(l=u%100,u=Math.floor(u/100)),l>=60||u>24)return null;if(u>=12&&(c=1),t[ma]){if(u>12)return null;var f=t[ma][0].toLowerCase();f=="a"&&(c=0,u==12&&(u=0)),f=="p"&&(c=1,u!=12&&(u+=12))}else if(t[ca]){var h=t[ca],_=h[0];_=="\u671D"||_=="\u65E9"?(c=0,u==12&&(u=0)):_=="\u665A"&&(c=1,u!=12&&(u+=12))}else if(t[da]){var m=t[da],g=m[0];g=="\u4E0A"||g=="\u671D"||g=="\u65E9"||g=="\u51CC"?(c=0,u==12&&(u=0)):(g=="\u4E0B"||g=="\u664F"||g=="\u665A")&&(c=1,u!=12&&(u+=12))}else if(t[pa]){var R=t[pa],w=R[0];w=="\u4E0A"||w=="\u671D"||w=="\u65E9"||w=="\u51CC"?(c=0,u==12&&(u=0)):(w=="\u4E0B"||w=="\u664F"||w=="\u665A")&&(c=1,u!=12&&(u+=12))}if(i.start.assign("hour",u),i.start.assign("minute",l),c>=0?i.start.assign("meridiem",c):u<12?i.start.imply("meridiem",0):i.start.imply("meridiem",1),t=jM.exec(e.text.substring(i.index+i.text.length)),!t)return i.text.match(/^\d+$/)?null:i;let k=s.clone();if(i.end=e.createParsingComponents(),t[la]){var a=t[la];a=="\u660E"||a=="\u807D"?n.hour()>1&&k.add(1,"day"):a=="\u6628"||a=="\u5C0B"||a=="\u7434"?k.add(-1,"day"):a=="\u524D"?k.add(-2,"day"):a=="\u5927\u524D"?k.add(-3,"day"):a=="\u5F8C"?k.add(2,"day"):a=="\u5927\u5F8C"&&k.add(3,"day"),i.end.assign("day",k.date()),i.end.assign("month",k.month()+1),i.end.assign("year",k.year())}else if(t[fa]){var o=t[fa];o=="\u660E"||o=="\u807D"?k.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?k.add(-1,"day"):o=="\u524D"?k.add(-2,"day"):o=="\u5927\u524D"?k.add(-3,"day"):o=="\u5F8C"?k.add(2,"day"):o=="\u5927\u5F8C"&&k.add(3,"day"),i.end.assign("day",k.date()),i.end.assign("month",k.month()+1),i.end.assign("year",k.year())}else i.end.imply("day",k.date()),i.end.imply("month",k.month()+1),i.end.imply("year",k.year());if(u=0,l=0,c=-1,t[Dn]){var d=parseInt(t[Dn]);if(isNaN(d)&&(d=_t.zhStringToNumber(t[Dn])),d>=60)return null;i.end.assign("second",d)}if(u=parseInt(t[ha]),isNaN(u)&&(u=_t.zhStringToNumber(t[ha])),t[gt]?t[gt]=="\u534A"?l=30:t[gt]=="\u6B63"||t[gt]=="\u6574"?l=0:(l=parseInt(t[gt]),isNaN(l)&&(l=_t.zhStringToNumber(t[gt]))):u>100&&(l=u%100,u=Math.floor(u/100)),l>=60||u>24)return null;if(u>=12&&(c=1),t[ma]){if(u>12)return null;var f=t[ma][0].toLowerCase();f=="a"&&(c=0,u==12&&(u=0)),f=="p"&&(c=1,u!=12&&(u+=12)),i.start.isCertain("meridiem")||(c==0?(i.start.imply("meridiem",0),i.start.get("hour")==12&&i.start.assign("hour",0)):(i.start.imply("meridiem",1),i.start.get("hour")!=12&&i.start.assign("hour",i.start.get("hour")+12)))}else if(t[ca]){var h=t[ca],_=h[0];_=="\u671D"||_=="\u65E9"?(c=0,u==12&&(u=0)):_=="\u665A"&&(c=1,u!=12&&(u+=12))}else if(t[da]){var m=t[da],g=m[0];g=="\u4E0A"||g=="\u671D"||g=="\u65E9"||g=="\u51CC"?(c=0,u==12&&(u=0)):(g=="\u4E0B"||g=="\u664F"||g=="\u665A")&&(c=1,u!=12&&(u+=12))}else if(t[pa]){var R=t[pa],w=R[0];w=="\u4E0A"||w=="\u671D"||w=="\u65E9"||w=="\u51CC"?(c=0,u==12&&(u=0)):(w=="\u4E0B"||w=="\u664F"||w=="\u665A")&&(c=1,u!=12&&(u+=12))}return i.text=i.text+t[0],i.end.assign("hour",u),i.end.assign("minute",l),c>=0?i.end.assign("meridiem",c):i.start.isCertain("meridiem")&&i.start.get("meridiem")==1&&i.start.get("hour")>u?i.end.imply("meridiem",0):u>12&&i.end.imply("meridiem",1),i.end.date().getTime(){"use strict";var BM=qi&&qi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(qi,"__esModule",{value:!0});var GM=BM(X()),HM=M(),zy=Mn(),zM=new RegExp("(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?"+Object.keys(zy.WEEKDAY_OFFSET).join("|")+")"),bc=class extends HM.AbstractParserWithWordBoundaryChecking{innerPattern(){return zM}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=t.groups.weekday,s=zy.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=GM.default(e.refDate),o=!1,u=a.day();return Math.abs(s-7-u){"use strict";var KM=Li&&Li.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Li,"__esModule",{value:!0});var VM=KM(Yt()),vc=class extends VM.default{patternBetween(){return/^\s*(至|到|\-|\~|~|-|ー)\s*$/i}};Li.default=vc});var Xy=p(Wi=>{"use strict";var XM=Wi&&Wi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Wi,"__esModule",{value:!0});var ZM=XM(Zt()),Ec=class extends ZM.default{patternBetween(){return/^\s*$/i}};Wi.default=Ec});var Zy=p(ve=>{"use strict";var nr=ve&&ve.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ve,"__esModule",{value:!0});ve.createConfiguration=ve.createCasualConfiguration=ve.parseDate=ve.parse=ve.strict=ve.casual=ve.hant=void 0;var wc=Mt(),QM=nr(Gs()),JM=Qt(),eD=nr(Ly()),tD=nr(Yy()),rD=nr(jy()),nD=nr(Gy()),iD=nr(Hy()),sD=nr(Ky()),aD=nr(Vy()),oD=nr(Xy());ve.hant=new wc.Chrono(Rc());ve.casual=new wc.Chrono(Rc());ve.strict=new wc.Chrono(Mc());function uD(r,e,t){return ve.casual.parse(r,e,t)}ve.parse=uD;function lD(r,e,t){return ve.casual.parseDate(r,e,t)}ve.parseDate=lD;function Rc(){let r=Mc();return r.parsers.unshift(new eD.default),r}ve.createCasualConfiguration=Rc;function Mc(){let r=JM.includeCommonConfiguration({parsers:[new tD.default,new nD.default,new sD.default,new iD.default,new rD.default],refiners:[new aD.default,new oD.default]});return r.refiners=r.refiners.filter(e=>!(e instanceof QM.default)),r}ve.createConfiguration=Mc});var tg=p(Yi=>{"use strict";var cD=Yi&&Yi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Yi,"__esModule",{value:!0});var dD=cD(X()),fD=M(),pD=1,Qy=2,hD=3,Jy=4,eg=5,mD=6,Dc=class extends fD.AbstractParserWithWordBoundaryChecking{innerPattern(e){return new RegExp("(\u73B0\u5728|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(e,t){let n=t.index,i=e.createParsingResult(n,t[0]),s=dD.default(e.refDate),a=s;if(t[pD])i.start.imply("hour",s.hour()),i.start.imply("minute",s.minute()),i.start.imply("second",s.second()),i.start.imply("millisecond",s.millisecond());else if(t[Qy]){let o=t[Qy],u=t[hD];o=="\u660E"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u540E"?a=a.add(2,"day"):o=="\u5927\u540E"&&(a=a.add(3,"day")),u=="\u65E9"?i.start.imply("hour",6):u=="\u665A"&&(i.start.imply("hour",22),i.start.imply("meridiem",1))}else if(t[Jy]){let u=t[Jy][0];u=="\u65E9"||u=="\u4E0A"?i.start.imply("hour",6):u=="\u4E0B"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):u=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):u=="\u591C"||u=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):u=="\u51CC"&&i.start.imply("hour",0)}else if(t[eg]){let o=t[eg];o=="\u660E"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u540E"?a=a.add(2,"day"):o=="\u5927\u540E"&&(a=a.add(3,"day"));let u=t[mD];if(u){let l=u[0];l=="\u65E9"||l=="\u4E0A"?i.start.imply("hour",6):l=="\u4E0B"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):l=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):l=="\u51CC"&&i.start.imply("hour",0)}}return i.start.assign("day",a.date()),i.start.assign("month",a.month()+1),i.start.assign("year",a.year()),i}};Yi.default=Dc});var On=p(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.zhStringToYear=Ve.zhStringToNumber=Ve.WEEKDAY_OFFSET=Ve.NUMBER=void 0;Ve.NUMBER={\u96F6:0,"\u3007":0,\u4E00:1,\u4E8C:2,\u4E24:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10};Ve.WEEKDAY_OFFSET={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6};function yD(r){let e=0;for(let t=0;t{"use strict";var _D=$i&&$i.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty($i,"__esModule",{value:!0});var TD=_D(X()),bD=M(),Br=On(),Oc=1,rg=2,Pc=3,kc=class extends bD.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Br.NUMBER).join("")+"]{4}|["+Object.keys(Br.NUMBER).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Br.NUMBER).join("")+"]{1,3})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Br.NUMBER).join("")+"]{1,3})?(?:\\s*)(?:\u65E5|\u53F7)?")}innerExtract(e,t){let n=TD.default(e.refDate),i=e.createParsingResult(t.index,t[0]),s=parseInt(t[rg]);if(isNaN(s)&&(s=Br.zhStringToNumber(t[rg])),i.start.assign("month",s),t[Pc]){let a=parseInt(t[Pc]);isNaN(a)&&(a=Br.zhStringToNumber(t[Pc])),i.start.assign("day",a)}else i.start.imply("day",n.date());if(t[Oc]){let a=parseInt(t[Oc]);isNaN(a)&&(a=Br.zhStringToYear(t[Oc])),i.start.assign("year",a)}else i.start.imply("year",n.year());return i}};$i.default=kc});var sg=p(ji=>{"use strict";var vD=ji&&ji.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ji,"__esModule",{value:!0});var ED=vD(X()),wD=M(),ig=On(),RD=new RegExp("(\\d+|["+Object.keys(ig.NUMBER).join("")+"]+|\u534A|\u51E0)(?:\\s*)(?:\u4E2A)?(\u79D2(?:\u949F)?|\u5206\u949F|\u5C0F\u65F6|\u949F|\u65E5|\u5929|\u661F\u671F|\u793C\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u8FC7)?\u540E|(?:\u4E4B)?\u5185)","i"),Ac=1,MD=2,Sc=class extends wD.AbstractParserWithWordBoundaryChecking{innerPattern(){return RD}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=parseInt(t[Ac]);if(isNaN(i)&&(i=ig.zhStringToNumber(t[Ac])),isNaN(i)){let u=t[Ac];if(u==="\u51E0")i=3;else if(u==="\u534A")i=.5;else return null}let s=ED.default(e.refDate),o=t[MD][0];return o.match(/[日天星礼月年]/)?(o=="\u65E5"||o=="\u5929"?s=s.add(i,"d"):o=="\u661F"||o=="\u793C"?s=s.add(i*7,"d"):o=="\u6708"?s=s.add(i,"month"):o=="\u5E74"&&(s=s.add(i,"year")),n.start.assign("year",s.year()),n.start.assign("month",s.month()+1),n.start.assign("day",s.date()),n):(o=="\u79D2"?s=s.add(i,"second"):o=="\u5206"?s=s.add(i,"minute"):(o=="\u5C0F"||o=="\u949F")&&(s=s.add(i,"hour")),n.start.imply("year",s.year()),n.start.imply("month",s.month()+1),n.start.imply("day",s.date()),n.start.assign("hour",s.hour()),n.start.assign("minute",s.minute()),n.start.assign("second",s.second()),n)}};ji.default=Sc});var og=p(Bi=>{"use strict";var DD=Bi&&Bi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Bi,"__esModule",{value:!0});var OD=DD(X()),PD=M(),ag=On(),kD=new RegExp("(?\u4E0A|\u4E0B|\u8FD9)(?:\u4E2A)?(?:\u661F\u671F|\u793C\u62DC|\u5468)(?"+Object.keys(ag.WEEKDAY_OFFSET).join("|")+")"),Nc=class extends PD.AbstractParserWithWordBoundaryChecking{innerPattern(){return kD}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=t.groups.weekday,s=ag.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=null,o=t.groups.prefix;o=="\u4E0A"?a="last":o=="\u4E0B"?a="next":o=="\u8FD9"&&(a="this");let u=OD.default(e.refDate),l=!1,c=u.day();return a=="last"||a=="past"?(u=u.day(s-7),l=!0):a=="next"?(u=u.day(s+7),l=!0):a=="this"?u=u.day(s):Math.abs(s-7-c){"use strict";var AD=Gi&&Gi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Gi,"__esModule",{value:!0});var SD=AD(X()),ND=M(),bt=On(),xD=new RegExp("(?:\u4ECE|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(bt.NUMBER).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(bt.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(bt.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),CD=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(bt.NUMBER).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(bt.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(bt.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),ya=1,ga=2,_a=3,Ta=4,ba=5,va=6,Tt=7,Pn=8,Ea=9,xc=class extends ND.AbstractParserWithWordBoundaryChecking{innerPattern(){return xD}innerExtract(e,t){if(t.index>0&&e.text[t.index-1].match(/\w/))return null;let n=SD.default(e.refDate),i=e.createParsingResult(t.index,t[0]),s=n.clone();if(t[ya]){let c=t[ya];c=="\u660E"?n.hour()>1&&s.add(1,"day"):c=="\u6628"?s.add(-1,"day"):c=="\u524D"?s.add(-2,"day"):c=="\u5927\u524D"?s.add(-3,"day"):c=="\u540E"?s.add(2,"day"):c=="\u5927\u540E"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else if(t[Ta]){let c=t[Ta];c=="\u660E"?s.add(1,"day"):c=="\u6628"?s.add(-1,"day"):c=="\u524D"?s.add(-2,"day"):c=="\u5927\u524D"?s.add(-3,"day"):c=="\u540E"?s.add(2,"day"):c=="\u5927\u540E"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else i.start.imply("day",s.date()),i.start.imply("month",s.month()+1),i.start.imply("year",s.year());let a=0,o=0,u=-1;if(t[Pn]){let c=parseInt(t[Pn]);if(isNaN(c)&&(c=bt.zhStringToNumber(t[Pn])),c>=60)return null;i.start.assign("second",c)}if(a=parseInt(t[va]),isNaN(a)&&(a=bt.zhStringToNumber(t[va])),t[Tt]?t[Tt]=="\u534A"?o=30:t[Tt]=="\u6B63"||t[Tt]=="\u6574"?o=0:(o=parseInt(t[Tt]),isNaN(o)&&(o=bt.zhStringToNumber(t[Tt]))):a>100&&(o=a%100,a=Math.floor(a/100)),o>=60||a>24)return null;if(a>=12&&(u=1),t[Ea]){if(a>12)return null;let c=t[Ea][0].toLowerCase();c=="a"&&(u=0,a==12&&(a=0)),c=="p"&&(u=1,a!=12&&(a+=12))}else if(t[ga]){let d=t[ga][0];d=="\u65E9"?(u=0,a==12&&(a=0)):d=="\u665A"&&(u=1,a!=12&&(a+=12))}else if(t[_a]){let d=t[_a][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(u=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(u=1,a!=12&&(a+=12))}else if(t[ba]){let d=t[ba][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(u=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(u=1,a!=12&&(a+=12))}if(i.start.assign("hour",a),i.start.assign("minute",o),u>=0?i.start.assign("meridiem",u):a<12?i.start.imply("meridiem",0):i.start.imply("meridiem",1),t=CD.exec(e.text.substring(i.index+i.text.length)),!t)return i.text.match(/^\d+$/)?null:i;let l=s.clone();if(i.end=e.createParsingComponents(),t[ya]){let c=t[ya];c=="\u660E"?n.hour()>1&&l.add(1,"day"):c=="\u6628"?l.add(-1,"day"):c=="\u524D"?l.add(-2,"day"):c=="\u5927\u524D"?l.add(-3,"day"):c=="\u540E"?l.add(2,"day"):c=="\u5927\u540E"&&l.add(3,"day"),i.end.assign("day",l.date()),i.end.assign("month",l.month()+1),i.end.assign("year",l.year())}else if(t[Ta]){let c=t[Ta];c=="\u660E"?l.add(1,"day"):c=="\u6628"?l.add(-1,"day"):c=="\u524D"?l.add(-2,"day"):c=="\u5927\u524D"?l.add(-3,"day"):c=="\u540E"?l.add(2,"day"):c=="\u5927\u540E"&&l.add(3,"day"),i.end.assign("day",l.date()),i.end.assign("month",l.month()+1),i.end.assign("year",l.year())}else i.end.imply("day",l.date()),i.end.imply("month",l.month()+1),i.end.imply("year",l.year());if(a=0,o=0,u=-1,t[Pn]){let c=parseInt(t[Pn]);if(isNaN(c)&&(c=bt.zhStringToNumber(t[Pn])),c>=60)return null;i.end.assign("second",c)}if(a=parseInt(t[va]),isNaN(a)&&(a=bt.zhStringToNumber(t[va])),t[Tt]?t[Tt]=="\u534A"?o=30:t[Tt]=="\u6B63"||t[Tt]=="\u6574"?o=0:(o=parseInt(t[Tt]),isNaN(o)&&(o=bt.zhStringToNumber(t[Tt]))):a>100&&(o=a%100,a=Math.floor(a/100)),o>=60||a>24)return null;if(a>=12&&(u=1),t[Ea]){if(a>12)return null;let c=t[Ea][0].toLowerCase();c=="a"&&(u=0,a==12&&(a=0)),c=="p"&&(u=1,a!=12&&(a+=12)),i.start.isCertain("meridiem")||(u==0?(i.start.imply("meridiem",0),i.start.get("hour")==12&&i.start.assign("hour",0)):(i.start.imply("meridiem",1),i.start.get("hour")!=12&&i.start.assign("hour",i.start.get("hour")+12)))}else if(t[ga]){let d=t[ga][0];d=="\u65E9"?(u=0,a==12&&(a=0)):d=="\u665A"&&(u=1,a!=12&&(a+=12))}else if(t[_a]){let d=t[_a][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(u=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(u=1,a!=12&&(a+=12))}else if(t[ba]){let d=t[ba][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(u=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(u=1,a!=12&&(a+=12))}return i.text=i.text+t[0],i.end.assign("hour",a),i.end.assign("minute",o),u>=0?i.end.assign("meridiem",u):i.start.isCertain("meridiem")&&i.start.get("meridiem")==1&&i.start.get("hour")>a?i.end.imply("meridiem",0):a>12&&i.end.imply("meridiem",1),i.end.date().getTime(){"use strict";var ID=Hi&&Hi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Hi,"__esModule",{value:!0});var FD=ID(X()),UD=M(),lg=On(),qD=new RegExp("(?:\u661F\u671F|\u793C\u62DC|\u5468)(?"+Object.keys(lg.WEEKDAY_OFFSET).join("|")+")"),Cc=class extends UD.AbstractParserWithWordBoundaryChecking{innerPattern(){return qD}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=t.groups.weekday,s=lg.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=FD.default(e.refDate),o=!1,u=a.day();return Math.abs(s-7-u){"use strict";var LD=zi&&zi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(zi,"__esModule",{value:!0});var WD=LD(Yt()),Ic=class extends WD.default{patternBetween(){return/^\s*(至|到|-|~|~|-|ー)\s*$/i}};zi.default=Ic});var fg=p(Ki=>{"use strict";var YD=Ki&&Ki.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ki,"__esModule",{value:!0});var $D=YD(Zt()),Fc=class extends $D.default{patternBetween(){return/^\s*$/i}};Ki.default=Fc});var pg=p(Ee=>{"use strict";var ir=Ee&&Ee.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ee,"__esModule",{value:!0});Ee.createConfiguration=Ee.createCasualConfiguration=Ee.parseDate=Ee.parse=Ee.strict=Ee.casual=Ee.hans=void 0;var Uc=Mt(),jD=ir(Gs()),BD=Qt(),GD=ir(tg()),HD=ir(ng()),zD=ir(sg()),KD=ir(og()),VD=ir(ug()),XD=ir(cg()),ZD=ir(dg()),QD=ir(fg());Ee.hans=new Uc.Chrono(qc());Ee.casual=new Uc.Chrono(qc());Ee.strict=new Uc.Chrono(Lc());function JD(r,e,t){return Ee.casual.parse(r,e,t)}Ee.parse=JD;function eO(r,e,t){return Ee.casual.parseDate(r,e,t)}Ee.parseDate=eO;function qc(){let r=Lc();return r.parsers.unshift(new GD.default),r}Ee.createCasualConfiguration=qc;function Lc(){let r=BD.includeCommonConfiguration({parsers:[new HD.default,new KD.default,new XD.default,new VD.default,new zD.default],refiners:[new ZD.default,new QD.default]});return r.refiners=r.refiners.filter(e=>!(e instanceof jD.default)),r}Ee.createConfiguration=Lc});var mg=p(at=>{"use strict";var hg=at&&at.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),tO=at&&at.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),rO=at&&at.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&hg(e,r,t)},nO=at&&at.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&hg(e,r,t);return tO(e,r),e};Object.defineProperty(at,"__esModule",{value:!0});at.hans=void 0;rO(Zy(),at);at.hans=nO(pg())});var Xe=p(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.parseTimeUnits=U.TIME_UNITS_PATTERN=U.parseYear=U.YEAR_PATTERN=U.parseOrdinalNumberPattern=U.ORDINAL_NUMBER_PATTERN=U.parseNumberPattern=U.NUMBER_PATTERN=U.TIME_UNIT_DICTIONARY=U.ORDINAL_WORD_DICTIONARY=U.INTEGER_WORD_DICTIONARY=U.MONTH_DICTIONARY=U.FULL_MONTH_NAME_DICTIONARY=U.WEEKDAY_DICTIONARY=U.REGEX_PARTS=void 0;var wa=re(),iO=Ue();U.REGEX_PARTS={leftBoundary:"([^\\p{L}\\p{N}_]|^)",rightBoundary:"(?=[^\\p{L}\\p{N}_]|$)",flags:"iu"};U.WEEKDAY_DICTIONARY={\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435:0,\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u044F:0,\u0432\u0441\u043A:0,"\u0432\u0441\u043A.":0,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A:1,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A\u0430:1,\u043F\u043D:1,"\u043F\u043D.":1,\u0432\u0442\u043E\u0440\u043D\u0438\u043A:2,\u0432\u0442\u043E\u0440\u043D\u0438\u043A\u0430:2,\u0432\u0442:2,"\u0432\u0442.":2,\u0441\u0440\u0435\u0434\u0430:3,\u0441\u0440\u0435\u0434\u044B:3,\u0441\u0440\u0435\u0434\u0443:3,\u0441\u0440:3,"\u0441\u0440.":3,\u0447\u0435\u0442\u0432\u0435\u0440\u0433:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430:4,\u0447\u0442:4,"\u0447\u0442.":4,\u043F\u044F\u0442\u043D\u0438\u0446\u0430:5,\u043F\u044F\u0442\u043D\u0438\u0446\u0443:5,\u043F\u044F\u0442\u043D\u0438\u0446\u044B:5,\u043F\u0442:5,"\u043F\u0442.":5,\u0441\u0443\u0431\u0431\u043E\u0442\u0430:6,\u0441\u0443\u0431\u0431\u043E\u0442\u0443:6,\u0441\u0443\u0431\u0431\u043E\u0442\u044B:6,\u0441\u0431:6,"\u0441\u0431.":6};U.FULL_MONTH_NAME_DICTIONARY={\u044F\u043D\u0432\u0430\u0440\u044C:1,\u044F\u043D\u0432\u0430\u0440\u044F:1,\u044F\u043D\u0432\u0430\u0440\u0435:1,\u0444\u0435\u0432\u0440\u044F\u043B\u044C:2,\u0444\u0435\u0432\u0440\u044F\u043B\u044F:2,\u0444\u0435\u0432\u0440\u044F\u043B\u0435:2,\u043C\u0430\u0440\u0442:3,\u043C\u0430\u0440\u0442\u0430:3,\u043C\u0430\u0440\u0442\u0435:3,\u0430\u043F\u0440\u0435\u043B\u044C:4,\u0430\u043F\u0440\u0435\u043B\u044F:4,\u0430\u043F\u0440\u0435\u043B\u0435:4,\u043C\u0430\u0439:5,\u043C\u0430\u044F:5,\u043C\u0430\u0435:5,\u0438\u044E\u043D\u044C:6,\u0438\u044E\u043D\u044F:6,\u0438\u044E\u043D\u0435:6,\u0438\u044E\u043B\u044C:7,\u0438\u044E\u043B\u044F:7,\u0438\u044E\u043B\u0435:7,\u0430\u0432\u0433\u0443\u0441\u0442:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0430:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0435:8,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u0435:9,\u043E\u043A\u0442\u044F\u0431\u0440\u044C:10,\u043E\u043A\u0442\u044F\u0431\u0440\u044F:10,\u043E\u043A\u0442\u044F\u0431\u0440\u0435:10,\u043D\u043E\u044F\u0431\u0440\u044C:11,\u043D\u043E\u044F\u0431\u0440\u044F:11,\u043D\u043E\u044F\u0431\u0440\u0435:11,\u0434\u0435\u043A\u0430\u0431\u0440\u044C:12,\u0434\u0435\u043A\u0430\u0431\u0440\u044F:12,\u0434\u0435\u043A\u0430\u0431\u0440\u0435:12};U.MONTH_DICTIONARY=Object.assign(Object.assign({},U.FULL_MONTH_NAME_DICTIONARY),{\u044F\u043D\u0432:1,"\u044F\u043D\u0432.":1,\u0444\u0435\u0432:2,"\u0444\u0435\u0432.":2,\u043C\u0430\u0440:3,"\u043C\u0430\u0440.":3,\u0430\u043F\u0440:4,"\u0430\u043F\u0440.":4,\u0430\u0432\u0433:8,"\u0430\u0432\u0433.":8,\u0441\u0435\u043D:9,"\u0441\u0435\u043D.":9,\u043E\u043A\u0442:10,"\u043E\u043A\u0442.":10,\u043D\u043E\u044F:11,"\u043D\u043E\u044F.":11,\u0434\u0435\u043A:12,"\u0434\u0435\u043A.":12});U.INTEGER_WORD_DICTIONARY={\u043E\u0434\u0438\u043D:1,\u043E\u0434\u043D\u0430:1,\u043E\u0434\u043D\u043E\u0439:1,\u043E\u0434\u043D\u0443:1,\u0434\u0432\u0435:2,\u0434\u0432\u0430:2,\u0434\u0432\u0443\u0445:2,\u0442\u0440\u0438:3,\u0442\u0440\u0435\u0445:3,\u0442\u0440\u0451\u0445:3,\u0447\u0435\u0442\u044B\u0440\u0435:4,\u0447\u0435\u0442\u044B\u0440\u0435\u0445:4,\u0447\u0435\u0442\u044B\u0440\u0451\u0445:4,\u043F\u044F\u0442\u044C:5,\u043F\u044F\u0442\u0438:5,\u0448\u0435\u0441\u0442\u044C:6,\u0448\u0435\u0441\u0442\u0438:6,\u0441\u0435\u043C\u044C:7,\u0441\u0435\u043C\u0438:7,\u0432\u043E\u0441\u0435\u043C\u044C:8,\u0432\u043E\u0441\u0435\u043C\u044C\u043C\u0438:8,\u0434\u0435\u0432\u044F\u0442\u044C:9,\u0434\u0435\u0432\u044F\u0442\u0438:9,\u0434\u0435\u0441\u044F\u0442\u044C:10,\u0434\u0435\u0441\u044F\u0442\u0438:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u044C:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u0438:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u044C:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u0438:12};U.ORDINAL_WORD_DICTIONARY={\u043F\u0435\u0440\u0432\u043E\u0435:1,\u043F\u0435\u0440\u0432\u043E\u0433\u043E:1,\u0432\u0442\u043E\u0440\u043E\u0435:2,\u0432\u0442\u043E\u0440\u043E\u0433\u043E:2,\u0442\u0440\u0435\u0442\u044C\u0435:3,\u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E:3,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E:4,\u043F\u044F\u0442\u043E\u0435:5,\u043F\u044F\u0442\u043E\u0433\u043E:5,\u0448\u0435\u0441\u0442\u043E\u0435:6,\u0448\u0435\u0441\u0442\u043E\u0433\u043E:6,\u0441\u0435\u0434\u044C\u043C\u043E\u0435:7,\u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E:7,\u0432\u043E\u0441\u044C\u043C\u043E\u0435:8,\u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E:8,\u0434\u0435\u0432\u044F\u0442\u043E\u0435:9,\u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E:9,\u0434\u0435\u0441\u044F\u0442\u043E\u0435:10,\u0434\u0435\u0441\u044F\u0442\u043E\u0433\u043E:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:12,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:13,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:13,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:14,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:14,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:15,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:15,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:16,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:16,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:17,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:17,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:18,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:18,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:19,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:19,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0435:20,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:20,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0435":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0433\u043E":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0435":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0433\u043E":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0435":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0433\u043E":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0435":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0435":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0435":29,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E":29,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0435:30,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0433\u043E:30,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":31,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":31};U.TIME_UNIT_DICTIONARY={\u0441\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u044B:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0443:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0438:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0443:"second",\u043C\u0438\u043D:"minute",\u043C\u0438\u043D\u0443\u0442\u0430:"minute",\u043C\u0438\u043D\u0443\u0442:"minute",\u043C\u0438\u043D\u0443\u0442\u044B:"minute",\u043C\u0438\u043D\u0443\u0442\u0443:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u043A:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0438:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0443:"minute",\u0447\u0430\u0441:"hour",\u0447\u0430\u0441\u043E\u0432:"hour",\u0447\u0430\u0441\u0430:"hour",\u0447\u0430\u0441\u0443:"hour",\u0447\u0430\u0441\u0438\u043A\u043E\u0432:"hour",\u0447\u0430\u0441\u0438\u043A\u0430:"hour",\u0447\u0430\u0441\u0438\u043A\u0435:"hour",\u0447\u0430\u0441\u0438\u043A:"hour",\u0434\u0435\u043D\u044C:"d",\u0434\u043D\u044F:"d",\u0434\u043D\u0435\u0439:"d",\u0441\u0443\u0442\u043E\u043A:"d",\u0441\u0443\u0442\u043A\u0438:"d",\u043D\u0435\u0434\u0435\u043B\u044F:"week",\u043D\u0435\u0434\u0435\u043B\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u044E:"week",\u043D\u0435\u0434\u0435\u043B\u044C:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u0435\u043A:"week",\u043C\u0435\u0441\u044F\u0446:"month",\u043C\u0435\u0441\u044F\u0446\u0435:"month",\u043C\u0435\u0441\u044F\u0446\u0435\u0432:"month",\u043C\u0435\u0441\u044F\u0446\u0430:"month",\u043A\u0432\u0430\u0440\u0442\u0430\u043B:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0435:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u043E\u0432:"quarter",\u0433\u043E\u0434:"year",\u0433\u043E\u0434\u0430:"year",\u0433\u043E\u0434\u0443:"year",\u0433\u043E\u0434\u043E\u0432:"year",\u043B\u0435\u0442:"year",\u0433\u043E\u0434\u0438\u043A:"year",\u0433\u043E\u0434\u0438\u043A\u0430:"year",\u0433\u043E\u0434\u0438\u043A\u043E\u0432:"year"};U.NUMBER_PATTERN=`(?:${wa.matchAnyPattern(U.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|\u043F\u043E\u043B|\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E|\u043F\u0430\u0440(?:\u044B|\u0443)|\\s{0,3})`;function gg(r){let e=r.toLowerCase();return U.INTEGER_WORD_DICTIONARY[e]!==void 0?U.INTEGER_WORD_DICTIONARY[e]:e.match(/несколько/)?3:e.match(/пол/)?.5:e.match(/пар/)?2:e===""?1:parseFloat(e)}U.parseNumberPattern=gg;U.ORDINAL_NUMBER_PATTERN=`(?:${wa.matchAnyPattern(U.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:\u0433\u043E|\u043E\u0433\u043E|\u0435|\u043E\u0435)?)`;function sO(r){let e=r.toLowerCase();return U.ORDINAL_WORD_DICTIONARY[e]!==void 0?U.ORDINAL_WORD_DICTIONARY[e]:(e=e.replace(/(?:st|nd|rd|th)$/i,""),parseInt(e))}U.parseOrdinalNumberPattern=sO;var Wc="(?:\\s+(?:\u0433\u043E\u0434\u0443|\u0433\u043E\u0434\u0430|\u0433\u043E\u0434|\u0433|\u0433.))?";U.YEAR_PATTERN=`(?:[1-9][0-9]{0,3}${Wc}\\s*(?:\u043D.\u044D.|\u0434\u043E \u043D.\u044D.|\u043D. \u044D.|\u0434\u043E \u043D. \u044D.)|[1-2][0-9]{3}${Wc}|[5-9][0-9]${Wc})`;function aO(r){if(/(год|года|г|г.)/i.test(r)&&(r=r.replace(/(год|года|г|г.)/i,"")),/(до н.э.|до н. э.)/i.test(r))return r=r.replace(/(до н.э.|до н. э.)/i,""),-parseInt(r);if(/(н. э.|н.э.)/i.test(r))return r=r.replace(/(н. э.|н.э.)/i,""),parseInt(r);let e=parseInt(r);return iO.findMostLikelyADYear(e)}U.parseYear=aO;var _g=`(${U.NUMBER_PATTERN})\\s{0,3}(${wa.matchAnyPattern(U.TIME_UNIT_DICTIONARY)})`,yg=new RegExp(_g,"i");U.TIME_UNITS_PATTERN=wa.repeatedTimeunitPattern("(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s{0,3})?",_g);function oO(r){let e={},t=r,n=yg.exec(t);for(;n;)uO(e,n),t=t.substring(n[0].length).trim(),n=yg.exec(t);return e}U.parseTimeUnits=oO;function uO(r,e){let t=gg(e[1]),n=U.TIME_UNIT_DICTIONARY[e[2].toLowerCase()];r[n]=t}});var bg=p($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var Vi=Xe(),lO=me(),cO=M(),Tg=`(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s*(?:~\\s*)?)?(${Vi.TIME_UNITS_PATTERN})${Vi.REGEX_PARTS.rightBoundary}`,dO=new RegExp(`(?:\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435|\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0438)\\s*${Tg}`,Vi.REGEX_PARTS.flags),fO=new RegExp(Tg,"i"),Yc=class extends cO.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Vi.REGEX_PARTS.leftBoundary}innerPattern(e){return e.option.forwardDate?fO:dO}innerExtract(e,t){let n=Vi.parseTimeUnits(t[1]);return lO.ParsingComponents.createRelativeFromReference(e.reference,n)}};$c.default=Yc});var Mg=p(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var pO=Ue(),Xi=Xe(),Rg=Xe(),Ra=Xe(),hO=re(),mO=M(),yO=new RegExp(`(?:\u0441)?\\s*(${Ra.ORDINAL_NUMBER_PATTERN})(?:\\s{0,3}(?:\u043F\u043E|-|\u2013|\u0434\u043E)?\\s{0,3}(${Ra.ORDINAL_NUMBER_PATTERN}))?(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})(${hO.matchAnyPattern(Xi.MONTH_DICTIONARY)})(?:(?:-|\\/|,?\\s{0,3})(${Rg.YEAR_PATTERN}(?![^\\s]\\d)))?${Xi.REGEX_PARTS.rightBoundary}`,Xi.REGEX_PARTS.flags),vg=1,Eg=2,gO=3,wg=4,jc=class extends mO.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Xi.REGEX_PARTS.leftBoundary}innerPattern(){return yO}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),i=Xi.MONTH_DICTIONARY[t[gO].toLowerCase()],s=Ra.parseOrdinalNumberPattern(t[vg]);if(s>31)return t.index=t.index+t[vg].length,null;if(n.start.assign("month",i),n.start.assign("day",s),t[wg]){let a=Rg.parseYear(t[wg]);n.start.assign("year",a)}else{let a=pO.findYearClosestToRef(e.refDate,s,i);n.start.imply("year",a)}if(t[Eg]){let a=Ra.parseOrdinalNumberPattern(t[Eg]);n.end=n.start.clone(),n.end.assign("day",a)}return n}};Bc.default=jc});var Pg=p(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var Zi=Xe(),_O=Ue(),TO=re(),Og=Xe(),bO=M(),vO=new RegExp(`((?:\u0432)\\s*)?(${TO.matchAnyPattern(Zi.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${Og.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,Zi.REGEX_PARTS.flags),EO=2,Dg=3,Gc=class extends bO.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Zi.REGEX_PARTS.leftBoundary}innerPattern(){return vO}innerExtract(e,t){let n=t[EO].toLowerCase();if(t[0].length<=3&&!Zi.FULL_MONTH_NAME_DICTIONARY[n])return null;let i=e.createParsingResult(t.index,t.index+t[0].length);i.start.imply("day",1);let s=Zi.MONTH_DICTIONARY[n];if(i.start.assign("month",s),t[Dg]){let a=Og.parseYear(t[Dg]);i.start.assign("year",a)}else{let a=_O.findYearClosestToRef(e.refDate,1,s);i.start.imply("year",a)}return i}};Hc.default=Gc});var Ag=p(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});var Ma=we(),wO=Ur(),kg=Xe(),zc=class extends wO.AbstractTimeExpressionParser{constructor(e){super(e)}patternFlags(){return kg.REGEX_PARTS.flags}primaryPatternLeftBoundary(){return"(^|\\s|T|(?:[^\\p{L}\\p{N}_]))"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|\u0434\u043E|\u0438|\u043F\u043E|\\?)\\s*"}primaryPrefix(){return"(?:(?:\u0432|\u0441)\\s*)??"}primarySuffix(){return`(?:\\s*(?:\u0443\u0442\u0440\u0430|\u0432\u0435\u0447\u0435\u0440\u0430|\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F))?(?!\\/)${kg.REGEX_PARTS.rightBoundary}`}extractPrimaryTimeComponents(e,t){let n=super.extractPrimaryTimeComponents(e,t);if(n){if(t[0].endsWith("\u0432\u0435\u0447\u0435\u0440\u0430")){let i=n.get("hour");i>=6&&i<12?(n.assign("hour",n.get("hour")+12),n.assign("meridiem",Ma.Meridiem.PM)):i<6&&n.assign("meridiem",Ma.Meridiem.AM)}if(t[0].endsWith("\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F")){n.assign("meridiem",Ma.Meridiem.PM);let i=n.get("hour");i>=0&&i<=6&&n.assign("hour",n.get("hour")+12)}t[0].endsWith("\u0443\u0442\u0440\u0430")&&(n.assign("meridiem",Ma.Meridiem.AM),n.get("hour")<12&&n.assign("hour",n.get("hour")))}return n}};Kc.default=zc});var Sg=p(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var Da=Xe(),RO=me(),MO=M(),DO=mt(),OO=new RegExp(`(${Da.TIME_UNITS_PATTERN})\\s{0,5}\u043D\u0430\u0437\u0430\u0434(?=(?:\\W|$))`,Da.REGEX_PARTS.flags),Vc=class extends MO.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Da.REGEX_PARTS.leftBoundary}innerPattern(){return OO}innerExtract(e,t){let n=Da.parseTimeUnits(t[1]),i=DO.reverseTimeUnits(n);return RO.ParsingComponents.createRelativeFromReference(e.reference,i)}};Xc.default=Vc});var Ng=p(Qi=>{"use strict";var PO=Qi&&Qi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Qi,"__esModule",{value:!0});var kO=PO(Yt()),Zc=class extends kO.default{patternBetween(){return/^\s*(и до|и по|до|по|-)\s*$/i}};Qi.default=Zc});var xg=p(Ji=>{"use strict";var AO=Ji&&Ji.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ji,"__esModule",{value:!0});var SO=AO(Zt()),Qc=class extends SO.default{patternBetween(){return new RegExp("^\\s*(T|\u0432|,|-)?\\s*$")}};Ji.default=Qc});var Cg=p(sr=>{"use strict";var NO=sr&&sr.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),xO=sr&&sr.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),CO=sr&&sr.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&NO(e,r,t);return xO(e,r),e};Object.defineProperty(sr,"__esModule",{value:!0});var IO=M(),es=CO(er()),Jc=Xe(),FO=new RegExp(`(?:\u0441|\u0441\u043E)?\\s*(\u0441\u0435\u0433\u043E\u0434\u043D\u044F|\u0432\u0447\u0435\u0440\u0430|\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430)${Jc.REGEX_PARTS.rightBoundary}`,Jc.REGEX_PARTS.flags),ed=class extends IO.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Jc.REGEX_PARTS.leftBoundary}innerPattern(e){return FO}innerExtract(e,t){let n=t[1].toLowerCase(),i=e.createParsingComponents();switch(n){case"\u0441\u0435\u0433\u043E\u0434\u043D\u044F":return es.today(e.reference);case"\u0432\u0447\u0435\u0440\u0430":return es.yesterday(e.reference);case"\u0437\u0430\u0432\u0442\u0440\u0430":return es.tomorrow(e.reference);case"\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430":return es.theDayAfter(e.reference,2);case"\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430":return es.theDayBefore(e.reference,2)}return i}};sr.default=ed});var Ig=p(At=>{"use strict";var UO=At&&At.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),qO=At&&At.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),LO=At&&At.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&UO(e,r,t);return qO(e,r),e},WO=At&&At.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(At,"__esModule",{value:!0});var YO=M(),Gr=LO(er()),$O=ht(),jO=WO(X()),td=Xe(),BO=new RegExp(`(\u0441\u0435\u0439\u0447\u0430\u0441|\u043F\u0440\u043E\u0448\u043B\u044B\u043C\\s*\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u043F\u0440\u043E\u0448\u043B\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u0435\u0433\u043E\u0434\u043D\u044F\\s*\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u0438\u043C \u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u0434\u0435\u043D\u044C|\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u0432\u0435\u0447\u0435\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u043D\u043E\u0447\u044C)${td.REGEX_PARTS.rightBoundary}`,td.REGEX_PARTS.flags),rd=class extends YO.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return td.REGEX_PARTS.leftBoundary}innerPattern(){return BO}innerExtract(e,t){let n=jO.default(e.refDate),i=t[0].toLowerCase(),s=e.createParsingComponents();if(i==="\u0441\u0435\u0439\u0447\u0430\u0441")return Gr.now(e.reference);if(i==="\u0432\u0435\u0447\u0435\u0440\u043E\u043C"||i==="\u0432\u0435\u0447\u0435\u0440\u0430")return Gr.evening(e.reference);if(i.endsWith("\u0443\u0442\u0440\u043E\u043C")||i.endsWith("\u0443\u0442\u0440\u0430"))return Gr.morning(e.reference);if(i.match(/в\s*полдень/))return Gr.noon(e.reference);if(i.match(/прошлой\s*ночью/))return Gr.lastNight(e.reference);if(i.match(/прошлым\s*вечером/))return Gr.yesterdayEvening(e.reference);if(i.match(/следующей\s*ночью/)){let a=n.hour()<22?1:2;n=n.add(a,"day"),$O.assignSimilarDate(s,n),s.imply("hour",0)}return i.match(/в\s*полночь/)||i.endsWith("\u043D\u043E\u0447\u044C\u044E")?Gr.midnight(e.reference):s}};At.default=rd});var Fg=p(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});var ts=Xe(),GO=re(),HO=M(),zO=Lr(),KO=new RegExp(`(?:(?:,|\\(|\uFF08)\\s*)?(?:\u0432\\s*?)?(?:(\u044D\u0442\u0443|\u044D\u0442\u043E\u0442|\u043F\u0440\u043E\u0448\u043B\u044B\u0439|\u043F\u0440\u043E\u0448\u043B\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E)\\s*)?(${GO.matchAnyPattern(ts.WEEKDAY_DICTIONARY)})(?:\\s*(?:,|\\)|\uFF09))?(?:\\s*\u043D\u0430\\s*(\u044D\u0442\u043E\u0439|\u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439)\\s*\u043D\u0435\u0434\u0435\u043B\u0435)?${ts.REGEX_PARTS.rightBoundary}`,ts.REGEX_PARTS.flags),VO=1,XO=2,ZO=3,nd=class extends HO.AbstractParserWithWordBoundaryChecking{innerPattern(){return KO}patternLeftBoundary(){return ts.REGEX_PARTS.leftBoundary}innerExtract(e,t){let n=t[XO].toLowerCase(),i=ts.WEEKDAY_DICTIONARY[n],s=t[VO],a=t[ZO],o=s||a;o=o||"",o=o.toLowerCase();let u=null;o=="\u043F\u0440\u043E\u0448\u043B\u044B\u0439"||o=="\u043F\u0440\u043E\u0448\u043B\u0443\u044E"||o=="\u043F\u0440\u043E\u0448\u043B\u043E\u0439"?u="last":o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E"?u="next":(o=="\u044D\u0442\u043E\u0442"||o=="\u044D\u0442\u0443"||o=="\u044D\u0442\u043E\u0439")&&(u="this");let l=zO.toDayJSWeekday(e.refDate,i,u);return e.createParsingComponents().assign("weekday",i).imply("day",l.date()).imply("month",l.month()+1).imply("year",l.year())}};id.default=nd});var qg=p(ns=>{"use strict";var QO=ns&&ns.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ns,"__esModule",{value:!0});var rs=Xe(),Ug=me(),JO=QO(X()),eP=M(),tP=re(),rP=new RegExp(`(\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C|\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439|\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C|\u043D\u0430 \u044D\u0442\u043E\u0439|\u0432 \u044D\u0442\u043E\u043C)\\s*(${tP.matchAnyPattern(rs.TIME_UNIT_DICTIONARY)})(?=\\s*)${rs.REGEX_PARTS.rightBoundary}`,rs.REGEX_PARTS.flags),nP=1,iP=2,sd=class extends eP.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return rs.REGEX_PARTS.leftBoundary}innerPattern(){return rP}innerExtract(e,t){let n=t[nP].toLowerCase(),i=t[iP].toLowerCase(),s=rs.TIME_UNIT_DICTIONARY[i];if(n=="\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||n=="\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C"){let u={};return u[s]=1,Ug.ParsingComponents.createRelativeFromReference(e.reference,u)}if(n=="\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C"||n=="\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439"){let u={};return u[s]=-1,Ug.ParsingComponents.createRelativeFromReference(e.reference,u)}let a=e.createParsingComponents(),o=JO.default(e.reference.instant);return s.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):s.match(/month/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):s.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};ns.default=sd});var Lg=p(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});var is=Xe(),sP=me(),aP=M(),oP=mt(),uP=new RegExp(`(\u044D\u0442\u0438|\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435|\u043F\u0440\u043E\u0448\u043B\u044B\u0435|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435|\u043F\u043E\u0441\u043B\u0435|\u0447\u0435\u0440\u0435\u0437|\\+|-)\\s*(${is.TIME_UNITS_PATTERN})${is.REGEX_PARTS.rightBoundary}`,is.REGEX_PARTS.flags),ad=class extends aP.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return is.REGEX_PARTS.leftBoundary}innerPattern(){return uP}innerExtract(e,t){let n=t[1].toLowerCase(),i=is.parseTimeUnits(t[2]);switch(n){case"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435":case"\u043F\u0440\u043E\u0448\u043B\u044B\u0435":case"-":i=oP.reverseTimeUnits(i);break}return sP.ParsingComponents.createRelativeFromReference(e.reference,i)}};od.default=ad});var $g=p(Ne=>{"use strict";var ot=Ne&&Ne.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.createConfiguration=Ne.createCasualConfiguration=Ne.parseDate=Ne.parse=Ne.strict=Ne.casual=void 0;var lP=ot(bg()),cP=ot(Mg()),dP=ot(Pg()),fP=ot(Ag()),pP=ot(Sg()),hP=ot(Ng()),mP=ot(xg()),yP=Qt(),gP=ot(Cg()),_P=ot(Ig()),TP=ot(Fg()),bP=ot(qg()),Wg=Mt(),vP=ot(Wr()),EP=ot(Lg());Ne.casual=new Wg.Chrono(Yg());Ne.strict=new Wg.Chrono(ud(!0));function wP(r,e,t){return Ne.casual.parse(r,e,t)}Ne.parse=wP;function RP(r,e,t){return Ne.casual.parseDate(r,e,t)}Ne.parseDate=RP;function Yg(){let r=ud(!1);return r.parsers.unshift(new gP.default),r.parsers.unshift(new _P.default),r.parsers.unshift(new dP.default),r.parsers.unshift(new bP.default),r.parsers.unshift(new EP.default),r}Ne.createCasualConfiguration=Yg;function ud(r=!0){return yP.includeCommonConfiguration({parsers:[new vP.default(!0),new lP.default,new cP.default,new TP.default,new fP.default(r),new pP.default],refiners:[new mP.default,new hP.default]},r)}Ne.createConfiguration=ud});var we=p(W=>{"use strict";var MP=W&&W.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),DP=W&&W.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),Mr=W&&W.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&MP(e,r,t);return DP(e,r),e};Object.defineProperty(W,"__esModule",{value:!0});W.parseDate=W.parse=W.casual=W.strict=W.ru=W.zh=W.nl=W.pt=W.ja=W.fr=W.de=W.Meridiem=W.Chrono=W.en=void 0;var ld=Mr(Du());W.en=ld;var OP=Mt();Object.defineProperty(W,"Chrono",{enumerable:!0,get:function(){return OP.Chrono}});var PP;(function(r){r[r.AM=0]="AM",r[r.PM=1]="PM"})(PP=W.Meridiem||(W.Meridiem={}));var kP=Mr(Zh());W.de=kP;var AP=Mr(Dm());W.fr=AP;var SP=Mr(Im());W.ja=SP;var NP=Mr(Zm());W.pt=NP;var xP=Mr(Iy());W.nl=xP;var CP=Mr(mg());W.zh=CP;var IP=Mr($g());W.ru=IP;W.strict=ld.strict;W.casual=ld.casual;function FP(r,e,t){return W.casual.parse(r,e,t)}W.parse=FP;function UP(r,e,t){return W.casual.parseDate(r,e,t)}W.parseDate=UP});var Ht=p(kr=>{"use strict";kr.__esModule=!0;var dk;(function(r){r.AND="AND",r.OR="OR",r.XOR="XOR",r.NOT="NOT"})(dk=kr.Operators||(kr.Operators={}));var fk;(function(r){r.OPEN_PARENTHESIS="(",r.CLOSE_PARENTHESIS=")"})(fk=kr.StructuralCharacters||(kr.StructuralCharacters={}));var pk;(function(r){r.IDENTIFIER="IDENTIFIER",r.OPERATOR="OPERATOR",r.STRUCTURAL_CHARACTER="STRUCTURAL_CHARACTER",r.EOF="EOF",r.COMMENT="COMMENT"})(pk=kr.Tokens||(kr.Tokens={}))});var Sd=p(ja=>{"use strict";ja.__esModule=!0;var ye=Ht();ja.OPERATOR_PRECEDENCE={NOT:0,XOR:1,AND:2,OR:3};ja.VALID_TOKENS={identifierOnly:[{name:ye.Tokens.IDENTIFIER},{name:ye.Tokens.STRUCTURAL_CHARACTER,value:ye.StructuralCharacters.OPEN_PARENTHESIS}],identifierOrNot:[{name:ye.Tokens.IDENTIFIER},{name:ye.Tokens.STRUCTURAL_CHARACTER,value:ye.StructuralCharacters.OPEN_PARENTHESIS},{name:ye.Tokens.OPERATOR,value:ye.Operators.NOT}],binaryOperator:[{name:ye.Tokens.OPERATOR,value:ye.Operators.AND},{name:ye.Tokens.OPERATOR,value:ye.Operators.OR},{name:ye.Tokens.OPERATOR,value:ye.Operators.XOR}],binaryOperatorOrClose:[{name:ye.Tokens.OPERATOR,value:ye.Operators.AND},{name:ye.Tokens.OPERATOR,value:ye.Operators.OR},{name:ye.Tokens.OPERATOR,value:ye.Operators.XOR},{name:ye.Tokens.STRUCTURAL_CHARACTER,value:ye.StructuralCharacters.CLOSE_PARENTHESIS}]}});var Nd=p(dr=>{"use strict";dr.__esModule=!0;var Ln=Ht();dr.STRUCTURAL_CHARACTERS={"(":Ln.StructuralCharacters.OPEN_PARENTHESIS,")":Ln.StructuralCharacters.CLOSE_PARENTHESIS};dr.OPERATORS={AND:Ln.Operators.AND,OR:Ln.Operators.OR,XOR:Ln.Operators.XOR,NOT:Ln.Operators.NOT};dr.SEPARATORS=new Set([32,9,10,13].map(function(r){return String.fromCodePoint(r)}));dr.QUOTED_IDENTIFIER_DELIMITER=String.fromCodePoint(34);dr.COMMENT_DELIMITER=String.fromCodePoint(35);dr.EOL=String.fromCodePoint(10);dr.ESCAPE_CHARACTER=String.fromCodePoint(92)});var T_=p(fr=>{"use strict";var xd=fr&&fr.__assign||function(){return xd=Object.assign||function(r){for(var e,t=1,n=arguments.length;t{"use strict";Cd.__esModule=!0;var Wn=Ht(),lt=Nd(),Yn=T_();Cd.lex=function(r){for(var e=null,t=null,n=null,i=0;i{"use strict";var hk=pr&&pr.__spreadArrays||function(){for(var r=0,e=0,t=arguments.length;e{"use strict";var jn=ms&&ms.__spreadArrays||function(){for(var r=0,e=0,t=arguments.length;e{"use strict";hr.__esModule=!0;var R_=Ht();hr.andUtil=function(r,e){return r&&e};hr.orUtil=function(r,e){return r||e};hr.xorUtil=function(r,e){return r!==e};hr.notUtil=function(r){return!r};hr.isIdentifier=function(r){var e=r.name,t=r.value;return e===R_.Tokens.IDENTIFIER&&typeof t=="string"};hr.isOperator=function(r){var e=r.name,t=r.value;return e===R_.Tokens.OPERATOR&&typeof t=="string"};hr.throwInvalidExpression=function(r){throw new TypeError("Invalid postfix expression: "+r)}});var M_=p(Wd=>{"use strict";var ys;Wd.__esModule=!0;var qd=Ht(),Ld=Ud();Wd.OPERATOR_MAP=(ys={},ys[qd.Operators.AND]=Ld.andUtil,ys[qd.Operators.OR]=Ld.orUtil,ys[qd.Operators.XOR]=Ld.xorUtil,ys)});var O_=p(rn=>{"use strict";var Yd=rn&&rn.__spreadArrays||function(){for(var r=0,e=0,t=arguments.length;e{"use strict";gs.__esModule=!0;var P_=O_();gs.getEvaluator=P_.getEvaluator;gs.evaluate=P_.evaluate;var _k=Fd();gs.parse=_k.parse});var Rk={};j_(Rk,{default:()=>oo});module.exports=B_(Rk);var I_=require("obsidian");var Sa=require("obsidian");var Dk=new Error("timeout while waiting for mutex to become available"),Ok=new Error("mutex already locked"),G_=new Error("request for lock canceled"),cf=function(r,e,t,n){function i(s){return s instanceof t?s:new t(function(a){a(s)})}return new(t||(t=Promise))(function(s,a){function o(c){try{l(n.next(c))}catch(d){a(d)}}function u(c){try{l(n.throw(c))}catch(d){a(d)}}function l(c){c.done?s(c.value):i(c.value).then(o,u)}l((n=n.apply(r,e||[])).next())})},po=class{constructor(e,t=G_){if(this._maxConcurrency=e,this._cancelError=t,this._queue=[],this._waiters=[],e<=0)throw new Error("semaphore must be initialized to a positive value");this._value=e}acquire(){let e=this.isLocked(),t=new Promise((n,i)=>this._queue.push({resolve:n,reject:i}));return e||this._dispatch(),t}runExclusive(e){return cf(this,void 0,void 0,function*(){let[t,n]=yield this.acquire();try{return yield e(t)}finally{n()}})}waitForUnlock(){return cf(this,void 0,void 0,function*(){return this.isLocked()?new Promise(t=>this._waiters.push({resolve:t})):Promise.resolve()})}isLocked(){return this._value<=0}release(){if(this._maxConcurrency>1)throw new Error("this method is unavailable on semaphores with concurrency > 1; use the scoped release returned by acquire instead");if(this._currentReleaser){let e=this._currentReleaser;this._currentReleaser=void 0,e()}}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatch(){let e=this._queue.shift();if(!e)return;let t=!1;this._currentReleaser=()=>{t||(t=!0,this._value++,this._resolveWaiters(),this._dispatch())},e.resolve([this._value--,this._currentReleaser])}_resolveWaiters(){this._waiters.forEach(e=>e.resolve()),this._waiters=[]}},H_=function(r,e,t,n){function i(s){return s instanceof t?s:new t(function(a){a(s)})}return new(t||(t=Promise))(function(s,a){function o(c){try{l(n.next(c))}catch(d){a(d)}}function u(c){try{l(n.throw(c))}catch(d){a(d)}}function l(c){c.done?s(c.value):i(c.value).then(o,u)}l((n=n.apply(r,e||[])).next())})},Ps=class{constructor(e){this._semaphore=new po(1,e)}acquire(){return H_(this,void 0,void 0,function*(){let[,e]=yield this._semaphore.acquire();return e})}runExclusive(e){return this._semaphore.runExclusive(()=>e())}isLocked(){return this._semaphore.isLocked()}waitForUnlock(){return this._semaphore.waitForUnlock()}release(){this._semaphore.release()}cancel(){return this._semaphore.cancel()}};var Qn=class{constructor(){this.hideTaskCount=!1;this.hideBacklinks=!1;this.hidePriority=!1;this.hideStartDate=!1;this.hideScheduledDate=!1;this.hideDoneDate=!1;this.hideDueDate=!1;this.hideRecurrenceRule=!1;this.hideEditButton=!1;this.hideUrgency=!0;this.shortMode=!1;this.explainQuery=!1}},un=class{constructor(e,t){this.defaultLayout=["description","priority","recurrenceRule","startDate","scheduledDate","dueDate","doneDate","blockLink"];e?this.options=e:this.options=new Qn,t?this.layoutComponents=t:this.layoutComponents=this.defaultLayout,this.layoutComponents=this.applyOptions(this.options)}applyOptions(e){let t=(i,s,a)=>s?i.filter(o=>o!=a):i,n=this.layoutComponents;return n=t(n,e.hidePriority,"priority"),n=t(n,e.hideRecurrenceRule,"recurrenceRule"),n=t(n,e.hideStartDate,"startDate"),n=t(n,e.hideScheduledDate,"scheduledDate"),n=t(n,e.hideDueDate,"dueDate"),n=t(n,e.hideDoneDate,"doneDate"),n}};var ks=["MO","TU","WE","TH","FR","SA","SU"],Te=function(){function r(e,t){if(t===0)throw new Error("Can't create weekday with n == 0");this.weekday=e,this.n=t}return r.fromStr=function(e){return new r(ks.indexOf(e))},r.prototype.nth=function(e){return this.n===e?this:new r(this.weekday,e)},r.prototype.equals=function(e){return this.weekday===e.weekday&&this.n===e.n},r.prototype.toString=function(){var e=ks[this.weekday];return this.n&&(e=(this.n>0?"+":"")+String(this.n)+e),e},r.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},r}();var oe=function(r){return r!=null},nt=function(r){return typeof r=="number"},ho=function(r){return typeof r=="string"&&ks.includes(r)},Fe=Array.isArray,ft=function(r,e){e===void 0&&(e=r),arguments.length===1&&(e=r,r=0);for(var t=[],n=r;n>0,n.length>e?String(n):(e=e-n.length,e>t.length&&(t+=G(t,e/t.length)),t.slice(0,e)+String(n))}var ff=function(r,e,t){var n=r.split(e);return t?n.slice(0,t).concat([n.slice(t).join(e)]):n},Ye=function(r,e){var t=r%e;return t*e<0?t+e:t},As=function(r,e){return{div:Math.floor(r/e),mod:Ye(r,e)}},it=function(r){return!oe(r)||r.length===0},ge=function(r){return!it(r)},K=function(r,e){return ge(r)&&r.indexOf(e)!==-1};var yr;(function(r){r.MONTH_DAYS=[31,28,31,30,31,30,31,31,30,31,30,31],r.ONE_DAY=1e3*60*60*24,r.MAXYEAR=9999,r.ORDINAL_BASE=new Date(Date.UTC(1970,0,1)),r.PY_WEEKDAYS=[6,0,1,2,3,4,5],r.getYearDay=function(e){var t=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate());return Math.ceil((t.valueOf()-new Date(e.getUTCFullYear(),0,1).valueOf())/r.ONE_DAY)+1},r.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},r.isDate=function(e){return e instanceof Date},r.isValidDate=function(e){return r.isDate(e)&&!isNaN(e.getTime())},r.tzOffset=function(e){return e.getTimezoneOffset()*60*1e3},r.daysBetween=function(e,t){var n=e.getTime()-r.tzOffset(e),i=t.getTime()-r.tzOffset(t),s=n-i;return Math.round(s/r.ONE_DAY)},r.toOrdinal=function(e){return r.daysBetween(e,r.ORDINAL_BASE)},r.fromOrdinal=function(e){return new Date(r.ORDINAL_BASE.getTime()+e*r.ONE_DAY)},r.getMonthDays=function(e){var t=e.getUTCMonth();return t===1&&r.isLeapYear(e.getUTCFullYear())?29:r.MONTH_DAYS[t]},r.getWeekday=function(e){return r.PY_WEEKDAYS[e.getUTCDay()]},r.monthRange=function(e,t){var n=new Date(Date.UTC(e,t,1));return[r.getWeekday(n),r.getMonthDays(n)]},r.combine=function(e,t){return t=t||e,new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))},r.clone=function(e){var t=new Date(e.getTime());return t},r.cloneDates=function(e){for(var t=[],n=0;nthis.maxDate;if(this.method==="between"){if(t)return!0;if(n)return!1}else if(this.method==="before"){if(n)return!1}else if(this.method==="after")return t?!0:(this.add(e),!1);return this.add(e)},r.prototype.add=function(e){return this._result.push(e),!0},r.prototype.getValue=function(){var e=this._result;switch(this.method){case"all":case"between":return e;case"before":case"after":default:return e.length?e[e.length-1]:null}},r.prototype.clone=function(){return new r(this.method,this.args)},r}(),Vt=z_;var If=Os(Cf(),1),{__extends:cn,__assign:Be,__rest:Uk,__decorate:qk,__param:Lk,__metadata:Wk,__awaiter:Yk,__generator:$k,__exportStar:jk,__createBinding:Bk,__values:Gk,__read:Hk,__spread:zk,__spreadArrays:Kk,__spreadArray:T,__await:Vk,__asyncGenerator:Xk,__asyncDelegator:Zk,__asyncValues:Qk,__makeTemplateObject:Jk,__importStar:eA,__importDefault:tA,__classPrivateFieldGet:rA,__classPrivateFieldSet:nA,__classPrivateFieldIn:iA}=If.default;var K_=function(r){cn(e,r);function e(t,n,i){var s=r.call(this,t,n)||this;return s.iterator=i,s}return e.prototype.add=function(t){return this.iterator(t,this._result.length)?(this._result.push(t),!0):!1},e}(Vt),yo=K_;var V_={dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],tokens:{SKIP:/^[ \r\n\t]+|^\.$/,number:/^[1-9][0-9]*/,numberAsText:/^(one|two|three)/i,every:/^every/i,"day(s)":/^days?/i,"weekday(s)":/^weekdays?/i,"week(s)":/^weeks?/i,"hour(s)":/^hours?/i,"minute(s)":/^minutes?/i,"month(s)":/^months?/i,"year(s)":/^years?/i,on:/^(on|in)/i,at:/^(at)/i,the:/^the/i,first:/^first/i,second:/^second/i,third:/^third/i,nth:/^([1-9][0-9]*)(\.|th|nd|rd|st)/i,last:/^last/i,for:/^for/i,"time(s)":/^times?/i,until:/^(un)?til/i,monday:/^mo(n(day)?)?/i,tuesday:/^tu(e(s(day)?)?)?/i,wednesday:/^we(d(n(esday)?)?)?/i,thursday:/^th(u(r(sday)?)?)?/i,friday:/^fr(i(day)?)?/i,saturday:/^sa(t(urday)?)?/i,sunday:/^su(n(day)?)?/i,january:/^jan(uary)?/i,february:/^feb(ruary)?/i,march:/^mar(ch)?/i,april:/^apr(il)?/i,may:/^may/i,june:/^june?/i,july:/^july?/i,august:/^aug(ust)?/i,september:/^sep(t(ember)?)?/i,october:/^oct(ober)?/i,november:/^nov(ember)?/i,december:/^dec(ember)?/i,comma:/^(,\s*|(and|or)\s*)+/i}},xr=V_;var Ff=function(r,e){return r.indexOf(e)!==-1},X_=function(r){return r.toString()},Z_=function(r,e,t){return"".concat(e," ").concat(t,", ").concat(r)},Q_=function(){function r(e,t,n,i){if(t===void 0&&(t=X_),n===void 0&&(n=xr),i===void 0&&(i=Z_),this.text=[],this.language=n||xr,this.gettext=t,this.dateFormatter=i,this.rrule=e,this.options=e.options,this.origOptions=e.origOptions,this.origOptions.bymonthday){var s=[].concat(this.options.bymonthday),a=[].concat(this.options.bynmonthday);s.sort(function(c,d){return c-d}),a.sort(function(c,d){return d-c}),this.bymonthday=s.concat(a),this.bymonthday.length||(this.bymonthday=null)}if(oe(this.origOptions.byweekday)){var o=Fe(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],u=String(o);this.byweekday={allWeeks:o.filter(function(c){return!c.n}),someWeeks:o.filter(function(c){return Boolean(c.n)}),isWeekdays:u.indexOf("MO")!==-1&&u.indexOf("TU")!==-1&&u.indexOf("WE")!==-1&&u.indexOf("TH")!==-1&&u.indexOf("FR")!==-1&&u.indexOf("SA")===-1&&u.indexOf("SU")===-1,isEveryDay:u.indexOf("MO")!==-1&&u.indexOf("TU")!==-1&&u.indexOf("WE")!==-1&&u.indexOf("TH")!==-1&&u.indexOf("FR")!==-1&&u.indexOf("SA")!==-1&&u.indexOf("SU")!==-1};var l=function(c,d){return c.weekday-d.weekday};this.byweekday.allWeeks.sort(l),this.byweekday.someWeeks.sort(l),this.byweekday.allWeeks.length||(this.byweekday.allWeeks=null),this.byweekday.someWeeks.length||(this.byweekday.someWeeks=null)}else this.byweekday=null}return r.isFullyConvertible=function(e){var t=!0;if(!(e.options.freq in r.IMPLEMENTED)||e.origOptions.until&&e.origOptions.count)return!1;for(var n in e.origOptions){if(Ff(["dtstart","wkst","freq"],n))return!0;if(!Ff(r.IMPLEMENTED[e.options.freq],n))return!1}return t},r.prototype.isFullyConvertible=function(){return r.isFullyConvertible(this.rrule)},r.prototype.toString=function(){var e=this.gettext;if(!(this.options.freq in r.IMPLEMENTED))return e("RRule error: Unable to fully convert this rrule to text");if(this.text=[e("every")],this[O.FREQUENCIES[this.options.freq]](),this.options.until){this.add(e("until"));var t=this.options.until;this.add(this.dateFormatter(t.getUTCFullYear(),this.language.monthNames[t.getUTCMonth()],t.getUTCDate()))}else this.options.count&&this.add(e("for")).add(this.options.count.toString()).add(this.plural(this.options.count)?e("times"):e("time"));return this.isFullyConvertible()||this.add(e("(~ approximate)")),this.text.join("")},r.prototype.HOURLY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("hours"):e("hour"))},r.prototype.MINUTELY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("minutes"):e("minute"))},r.prototype.DAILY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.byweekday&&this.byweekday.isWeekdays?this.add(this.plural(this.options.interval)?e("weekdays"):e("weekday")):this.add(this.plural(this.options.interval)?e("days"):e("day")),this.origOptions.bymonth&&(this.add(e("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday?this._byweekday():this.origOptions.byhour&&this._byhour()},r.prototype.WEEKLY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()).add(this.plural(this.options.interval)?e("weeks"):e("week")),this.byweekday&&this.byweekday.isWeekdays?this.options.interval===1?this.add(this.plural(this.options.interval)?e("weekdays"):e("weekday")):this.add(e("on")).add(e("weekdays")):this.byweekday&&this.byweekday.isEveryDay?this.add(this.plural(this.options.interval)?e("days"):e("day")):(this.options.interval===1&&this.add(e("week")),this.origOptions.bymonth&&(this.add(e("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday())},r.prototype.MONTHLY=function(){var e=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()).add(e("months")),this.plural(this.options.interval)&&this.add(e("in"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("months"):e("month"))),this.bymonthday?this._bymonthday():this.byweekday&&this.byweekday.isWeekdays?this.add(e("on")).add(e("weekdays")):this.byweekday&&this._byweekday()},r.prototype.YEARLY=function(){var e=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()),this.add(e("years"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("years"):e("year"))),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.options.byyearday&&this.add(e("on the")).add(this.list(this.options.byyearday,this.nth,e("and"))).add(e("day")),this.options.byweekno&&this.add(e("in")).add(this.plural(this.options.byweekno.length)?e("weeks"):e("week")).add(this.list(this.options.byweekno,void 0,e("and")))},r.prototype._bymonthday=function(){var e=this.gettext;this.byweekday&&this.byweekday.allWeeks?this.add(e("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext,e("or"))).add(e("the")).add(this.list(this.bymonthday,this.nth,e("or"))):this.add(e("on the")).add(this.list(this.bymonthday,this.nth,e("and")))},r.prototype._byweekday=function(){var e=this.gettext;this.byweekday.allWeeks&&!this.byweekday.isWeekdays&&this.add(e("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext)),this.byweekday.someWeeks&&(this.byweekday.allWeeks&&this.add(e("and")),this.add(e("on the")).add(this.list(this.byweekday.someWeeks,this.weekdaytext,e("and"))))},r.prototype._byhour=function(){var e=this.gettext;this.add(e("at")).add(this.list(this.origOptions.byhour,void 0,e("and")))},r.prototype._bymonth=function(){this.add(this.list(this.options.bymonth,this.monthtext,this.gettext("and")))},r.prototype.nth=function(e){e=parseInt(e.toString(),10);var t,n=this.gettext;if(e===-1)return n("last");var i=Math.abs(e);switch(i){case 1:case 21:case 31:t=i+n("st");break;case 2:case 22:t=i+n("nd");break;case 3:case 23:t=i+n("rd");break;default:t=i+n("th")}return e<0?t+" "+n("last"):t},r.prototype.monthtext=function(e){return this.language.monthNames[e-1]},r.prototype.weekdaytext=function(e){var t=nt(e)?(e+1)%7:e.getJsWeekday();return(e.n?this.nth(e.n)+" ":"")+this.language.dayNames[t]},r.prototype.plural=function(e){return e%100!==1},r.prototype.add=function(e){return this.text.push(" "),this.text.push(e),this},r.prototype.list=function(e,t,n,i){var s=this;i===void 0&&(i=","),Fe(e)||(e=[e]);var a=function(u,l,c){for(var d="",f=0;fe[0].length)&&(e=s,t=i)}if(e!=null&&(this.text=this.text.substr(e[0].length),this.text===""&&(this.done=!0)),e==null){this.done=!0,this.symbol=null,this.value=null;return}}while(t==="SKIP");return this.symbol=t,this.value=e,!0},r.prototype.accept=function(e){if(this.symbol===e){if(this.value){var t=this.value;return this.nextSymbol(),t}return this.nextSymbol(),!0}return!1},r.prototype.acceptNumber=function(){return this.accept("number")},r.prototype.expect=function(e){if(this.accept(e))return!0;throw new Error("expected "+e+" but found "+this.symbol)},r}();function Jn(r,e){e===void 0&&(e=xr);var t={},n=new J_(e.tokens);if(!n.start(r))return null;return i(),t;function i(){n.expect("every");var f=n.acceptNumber();if(f&&(t.interval=parseInt(f[0],10)),n.isDone())throw new Error("Unexpected end");switch(n.symbol){case"day(s)":t.freq=O.DAILY,n.nextSymbol()&&(a(),d());break;case"weekday(s)":t.freq=O.WEEKLY,t.byweekday=[O.MO,O.TU,O.WE,O.TH,O.FR],n.nextSymbol(),d();break;case"week(s)":t.freq=O.WEEKLY,n.nextSymbol()&&(s(),d());break;case"hour(s)":t.freq=O.HOURLY,n.nextSymbol()&&(s(),d());break;case"minute(s)":t.freq=O.MINUTELY,n.nextSymbol()&&(s(),d());break;case"month(s)":t.freq=O.MONTHLY,n.nextSymbol()&&(s(),d());break;case"year(s)":t.freq=O.YEARLY,n.nextSymbol()&&(s(),d());break;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":t.freq=O.WEEKLY;var h=n.symbol.substr(0,2).toUpperCase();if(t.byweekday=[O[h]],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var _=u();if(!_)throw new Error("Unexpected symbol "+n.symbol+", expected weekday");t.byweekday.push(O[_]),n.nextSymbol()}c(),d();break;case"january":case"february":case"march":case"april":case"may":case"june":case"july":case"august":case"september":case"october":case"november":case"december":if(t.freq=O.YEARLY,t.bymonth=[o()],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var m=o();if(!m)throw new Error("Unexpected symbol "+n.symbol+", expected month");t.bymonth.push(m),n.nextSymbol()}s(),d();break;default:throw new Error("Unknown symbol")}}function s(){var f=n.accept("on"),h=n.accept("the");if(!!(f||h))do{var _=l(),m=u(),g=o();if(_)m?(n.nextSymbol(),t.byweekday||(t.byweekday=[]),t.byweekday.push(O[m].nth(_))):(t.bymonthday||(t.bymonthday=[]),t.bymonthday.push(_),n.accept("day(s)"));else if(m)n.nextSymbol(),t.byweekday||(t.byweekday=[]),t.byweekday.push(O[m]);else if(n.symbol==="weekday(s)")n.nextSymbol(),t.byweekday||(t.byweekday=[O.MO,O.TU,O.WE,O.TH,O.FR]);else if(n.symbol==="week(s)"){n.nextSymbol();var R=n.acceptNumber();if(!R)throw new Error("Unexpected symbol "+n.symbol+", expected week number");for(t.byweekno=[parseInt(R[0],10)];n.accept("comma");){if(R=n.acceptNumber(),!R)throw new Error("Unexpected symbol "+n.symbol+"; expected monthday");t.byweekno.push(parseInt(R[0],10))}}else if(g)n.nextSymbol(),t.bymonth||(t.bymonth=[]),t.bymonth.push(g);else return}while(n.accept("comma")||n.accept("the")||n.accept("on"))}function a(){var f=n.accept("at");if(!!f)do{var h=n.acceptNumber();if(!h)throw new Error("Unexpected symbol "+n.symbol+", expected hour");for(t.byhour=[parseInt(h[0],10)];n.accept("comma");){if(h=n.acceptNumber(),!h)throw new Error("Unexpected symbol "+n.symbol+"; expected hour");t.byhour.push(parseInt(h[0],10))}}while(n.accept("comma")||n.accept("at"))}function o(){switch(n.symbol){case"january":return 1;case"february":return 2;case"march":return 3;case"april":return 4;case"may":return 5;case"june":return 6;case"july":return 7;case"august":return 8;case"september":return 9;case"october":return 10;case"november":return 11;case"december":return 12;default:return!1}}function u(){switch(n.symbol){case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return n.symbol.substr(0,2).toUpperCase();default:return!1}}function l(){switch(n.symbol){case"last":return n.nextSymbol(),-1;case"first":return n.nextSymbol(),1;case"second":return n.nextSymbol(),n.accept("last")?-2:2;case"third":return n.nextSymbol(),n.accept("last")?-3:3;case"nth":var f=parseInt(n.value[1],10);if(f<-366||f>366)throw new Error("Nth out of range: "+f);return n.nextSymbol(),n.accept("last")?-f:f;default:return!1}}function c(){n.accept("on"),n.accept("the");var f=l();if(!!f)for(t.bymonthday=[f],n.nextSymbol();n.accept("comma");){if(f=l(),!f)throw new Error("Unexpected symbol "+n.symbol+"; expected monthday");t.bymonthday.push(f),n.nextSymbol()}}function d(){if(n.symbol==="until"){var f=Date.parse(n.text);if(!f)throw new Error("Cannot parse until date:"+n.text);t.until=new Date(f)}else n.accept("for")&&(t.count=parseInt(n.value[0],10),n.expect("number"))}}var $;(function(r){r[r.YEARLY=0]="YEARLY",r[r.MONTHLY=1]="MONTHLY",r[r.WEEKLY=2]="WEEKLY",r[r.DAILY=3]="DAILY",r[r.HOURLY=4]="HOURLY",r[r.MINUTELY=5]="MINUTELY",r[r.SECONDLY=6]="SECONDLY"})($||($={}));function ei(r){return r<$.HOURLY}var Uf=function(r,e){return e===void 0&&(e=xr),new O(Jn(r,e)||void 0)},dn=["count","until","interval","byweekday","bymonthday","bymonth"];qt.IMPLEMENTED=[];qt.IMPLEMENTED[$.HOURLY]=dn;qt.IMPLEMENTED[$.MINUTELY]=dn;qt.IMPLEMENTED[$.DAILY]=["byhour"].concat(dn);qt.IMPLEMENTED[$.WEEKLY]=dn;qt.IMPLEMENTED[$.MONTHLY]=dn;qt.IMPLEMENTED[$.YEARLY]=["byweekno","byyearday"].concat(dn);var qf=function(r,e,t,n){return new qt(r,e,t,n).toString()},Lf=qt.isFullyConvertible;var fn=function(){function r(e,t,n,i){this.hour=e,this.minute=t,this.second=n,this.millisecond=i||0}return r.prototype.getHours=function(){return this.hour},r.prototype.getMinutes=function(){return this.minute},r.prototype.getSeconds=function(){return this.second},r.prototype.getMilliseconds=function(){return this.millisecond},r.prototype.getTime=function(){return(this.hour*60*60+this.minute*60+this.second)*1e3+this.millisecond},r}();var Wf=function(r){cn(e,r);function e(t,n,i,s,a,o,u){var l=r.call(this,s,a,o,u)||this;return l.year=t,l.month=n,l.day=i,l}return e.fromDate=function(t){return new this(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.valueOf()%1e3)},e.prototype.getWeekday=function(){return yr.getWeekday(new Date(this.getTime()))},e.prototype.getTime=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond)).getTime()},e.prototype.getDay=function(){return this.day},e.prototype.getMonth=function(){return this.month},e.prototype.getYear=function(){return this.year},e.prototype.addYears=function(t){this.year+=t},e.prototype.addMonths=function(t){if(this.month+=t,this.month>12){var n=Math.floor(this.month/12),i=Ye(this.month,12);this.month=i,this.year+=n,this.month===0&&(this.month=12,--this.year)}},e.prototype.addWeekly=function(t,n){n>this.getWeekday()?this.day+=-(this.getWeekday()+1+(6-n))+t*7:this.day+=-(this.getWeekday()-n)+t*7,this.fixDay()},e.prototype.addDaily=function(t){this.day+=t,this.fixDay()},e.prototype.addHours=function(t,n,i){for(n&&(this.hour+=Math.floor((23-this.hour)/t)*t);;){this.hour+=t;var s=As(this.hour,24),a=s.div,o=s.mod;if(a&&(this.hour=o,this.addDaily(a)),it(i)||K(i,this.hour))break}},e.prototype.addMinutes=function(t,n,i,s){for(n&&(this.minute+=Math.floor((1439-(this.hour*60+this.minute))/t)*t);;){this.minute+=t;var a=As(this.minute,60),o=a.div,u=a.mod;if(o&&(this.minute=u,this.addHours(o,!1,i)),(it(i)||K(i,this.hour))&&(it(s)||K(s,this.minute)))break}},e.prototype.addSeconds=function(t,n,i,s,a){for(n&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/t)*t);;){this.second+=t;var o=As(this.second,60),u=o.div,l=o.mod;if(u&&(this.second=l,this.addMinutes(u,!1,i,s)),(it(i)||K(i,this.hour))&&(it(s)||K(s,this.minute))&&(it(a)||K(a,this.second)))break}},e.prototype.fixDay=function(){if(!(this.day<=28)){var t=yr.monthRange(this.year,this.month-1)[1];if(!(this.day<=t))for(;this.day>t;){if(this.day-=t,++this.month,this.month===13&&(this.month=1,++this.year,this.year>yr.MAXYEAR))return;t=yr.monthRange(this.year,this.month-1)[1]}}},e.prototype.add=function(t,n){var i=t.freq,s=t.interval,a=t.wkst,o=t.byhour,u=t.byminute,l=t.bysecond;switch(i){case $.YEARLY:return this.addYears(s);case $.MONTHLY:return this.addMonths(s);case $.WEEKLY:return this.addWeekly(s,a);case $.DAILY:return this.addDaily(s);case $.HOURLY:return this.addHours(s,n,o);case $.MINUTELY:return this.addMinutes(s,n,o,u);case $.SECONDLY:return this.addSeconds(s,n,o,u,l)}},e}(fn);function go(r){for(var e=[],t=Object.keys(r),n=0,i=t;n=-366&&n<=366))throw new Error("bysetpos must be between 1 and 366, or between -366 and -1")}}if(!(Boolean(e.byweekno)||ge(e.byweekno)||ge(e.byyearday)||Boolean(e.bymonthday)||ge(e.bymonthday)||oe(e.byweekday)||oe(e.byeaster)))switch(e.freq){case O.YEARLY:e.bymonth||(e.bymonth=e.dtstart.getUTCMonth()+1),e.bymonthday=e.dtstart.getUTCDate();break;case O.MONTHLY:e.bymonthday=e.dtstart.getUTCDate();break;case O.WEEKLY:e.byweekday=[C.getWeekday(e.dtstart)];break}if(oe(e.bymonth)&&!Fe(e.bymonth)&&(e.bymonth=[e.bymonth]),oe(e.byyearday)&&!Fe(e.byyearday)&&nt(e.byyearday)&&(e.byyearday=[e.byyearday]),!oe(e.bymonthday))e.bymonthday=[],e.bynmonthday=[];else if(Fe(e.bymonthday)){for(var i=[],s=[],t=0;t0?i.push(n):n<0&&s.push(n)}e.bymonthday=i,e.bynmonthday=s}else e.bymonthday<0?(e.bynmonthday=[e.bymonthday],e.bymonthday=[]):(e.bynmonthday=[],e.bymonthday=[e.bymonthday]);if(oe(e.byweekno)&&!Fe(e.byweekno)&&(e.byweekno=[e.byweekno]),!oe(e.byweekday))e.bynweekday=null;else if(nt(e.byweekday))e.byweekday=[e.byweekday],e.bynweekday=null;else if(ho(e.byweekday))e.byweekday=[Te.fromStr(e.byweekday).weekday],e.bynweekday=null;else if(e.byweekday instanceof Te)!e.byweekday.n||e.freq>O.MONTHLY?(e.byweekday=[e.byweekday.weekday],e.bynweekday=null):(e.bynweekday=[[e.byweekday.weekday,e.byweekday.n]],e.byweekday=null);else{for(var a=[],o=[],t=0;tO.MONTHLY?a.push(u.weekday):o.push([u.weekday,u.n])}e.byweekday=ge(a)?a:null,e.bynweekday=ge(o)?o:null}return oe(e.byhour)?nt(e.byhour)&&(e.byhour=[e.byhour]):e.byhour=e.freq=4?(c=0,l=o.yearlen+Ye(a-e.wkst,7)):l=n-c;for(var d=Math.floor(l/7),f=Ye(l,7),h=Math.floor(d+f/4),_=0;_0&&m<=h){var g=void 0;m>1?(g=c+(m-1)*7,c!==u&&(g-=7-u)):g=c;for(var R=0;R<7&&(o.wnomask[g]=1,g++,o.wdaymask[g]!==e.wkst);R++);}}if(K(e.byweekno,1)){var g=c+h*7;if(c!==u&&(g-=7-u),g=4?(z=0,he=fe+Ye(k-e.wkst,7)):he=n-c,w=Math.floor(52+Ye(he,7)/4)}if(K(e.byweekno,w))for(var g=0;gs)return Xt(r);if(w>=t){var k=ap(w,e);if(!r.accept(k)||o&&(--o,!o))return Xt(r)}}else for(var R=h;R<_;R++){var z=f[R];if(!!oe(z))for(var fe=C.fromOrdinal(l.yearordinal+z),he=0;hes)return Xt(r);if(w>=t){var k=ap(w,e);if(!r.accept(k)||o&&(--o,!o))return Xt(r)}}}if(e.interval===0||(u.add(e,m),u.year>C.MAXYEAR))return Xt(r);ei(n)||(c=l.gettimeset(n)(u.hour,u.minute,u.second,0)),l.rebuild(u.year,u.month)}}function dT(r,e,t){var n=t.bymonth,i=t.byweekno,s=t.byweekday,a=t.byeaster,o=t.bymonthday,u=t.bynmonthday,l=t.byyearday;return ge(n)&&!K(n,r.mmask[e])||ge(i)&&!r.wnomask[e]||ge(s)&&!K(s,r.wdaymask[e])||ge(r.nwdaymask)&&!r.nwdaymask[e]||a!==null&&!K(r.eastermask,e)||(ge(o)||ge(u))&&!K(o,r.mdaymask[e])&&!K(u,r.nmdaymask[e])||ge(l)&&(e=r.yearlen&&!K(l,e+1-r.yearlen)&&!K(l,-r.nextyearlen+e-r.yearlen))}function ap(r,e){return new Cr(r,e.tzid).rezonedDate()}function Xt(r){return r.getValue()}function fT(r,e,t,n,i){for(var s=!1,a=e;a=O.HOURLY&&ge(i)&&!K(i,e.hour)||n>=O.MINUTELY&&ge(s)&&!K(s,e.minute)||n>=O.SECONDLY&&ge(a)&&!K(a,e.second)?[]:r.gettimeset(n)(e.hour,e.minute,e.second,e.millisecond)}var pt={MO:new Te(0),TU:new Te(1),WE:new Te(2),TH:new Te(3),FR:new Te(4),SA:new Te(5),SU:new Te(6)},ti={freq:$.YEARLY,dtstart:null,interval:1,wkst:pt.MO,count:null,until:null,tzid:null,bysetpos:null,bymonth:null,bymonthday:null,bynmonthday:null,byyearday:null,byweekno:null,byweekday:null,bynweekday:null,byhour:null,byminute:null,bysecond:null,byeaster:null},jf=Object.keys(ti),O=function(){function r(e,t){e===void 0&&(e={}),t===void 0&&(t=!1),this._cache=t?null:new Hf,this.origOptions=go(e);var n=Yf(e).parsedOptions;this.options=n}return r.parseText=function(e,t){return Jn(e,t)},r.fromText=function(e,t){return Uf(e,t)},r.fromString=function(e){return new r(r.parseString(e)||void 0)},r.prototype._iter=function(e){return Cs(e,this.options)},r.prototype._cacheGet=function(e,t){return this._cache?this._cache._cacheGet(e,t):!1},r.prototype._cacheAdd=function(e,t,n){if(!!this._cache)return this._cache._cacheAdd(e,t,n)},r.prototype.all=function(e){if(e)return this._iter(new yo("all",{},e));var t=this._cacheGet("all");return t===!1&&(t=this._iter(new Vt("all",{})),this._cacheAdd("all",t)),t},r.prototype.between=function(e,t,n,i){if(n===void 0&&(n=!1),!C.isValidDate(e)||!C.isValidDate(t))throw new Error("Invalid date passed in to RRule.between");var s={before:t,after:e,inc:n};if(i)return this._iter(new yo("between",s,i));var a=this._cacheGet("between",s);return a===!1&&(a=this._iter(new Vt("between",s)),this._cacheAdd("between",a,s)),a},r.prototype.before=function(e,t){if(t===void 0&&(t=!1),!C.isValidDate(e))throw new Error("Invalid date passed in to RRule.before");var n={dt:e,inc:t},i=this._cacheGet("before",n);return i===!1&&(i=this._iter(new Vt("before",n)),this._cacheAdd("before",i,n)),i},r.prototype.after=function(e,t){if(t===void 0&&(t=!1),!C.isValidDate(e))throw new Error("Invalid date passed in to RRule.after");var n={dt:e,inc:t},i=this._cacheGet("after",n);return i===!1&&(i=this._iter(new Vt("after",n)),this._cacheAdd("after",i,n)),i},r.prototype.count=function(){return this.all().length},r.prototype.toString=function(){return ii(this.origOptions)},r.prototype.toText=function(e,t,n){return qf(this,e,t,n)},r.prototype.isFullyConvertibleToText=function(){return Lf(this)},r.prototype.clone=function(){return new r(this.origOptions)},r.FREQUENCIES=["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],r.YEARLY=$.YEARLY,r.MONTHLY=$.MONTHLY,r.WEEKLY=$.WEEKLY,r.DAILY=$.DAILY,r.HOURLY=$.HOURLY,r.MINUTELY=$.MINUTELY,r.SECONDLY=$.SECONDLY,r.MO=pt.MO,r.TU=pt.TU,r.WE=pt.WE,r.TH=pt.TH,r.FR=pt.FR,r.SA=pt.SA,r.SU=pt.SU,r.parseString=ni,r.optionsToString=ii,r}();function op(r,e,t,n,i,s){var a={},o=r.accept;function u(f,h){t.forEach(function(_){_.between(f,h,!0).forEach(function(m){a[Number(m)]=!0})})}i.forEach(function(f){var h=new Cr(f,s).rezonedDate();a[Number(h)]=!0}),r.accept=function(f){var h=Number(f);return isNaN(h)?o.call(this,f):!a[h]&&(u(new Date(h-1),new Date(h+1)),!a[h])?(a[h]=!0,o.call(this,f)):!0},r.method==="between"&&(u(r.args.after,r.args.before),r.accept=function(f){var h=Number(f);return a[h]?!0:(a[h]=!0,o.call(this,f))});for(var l=0;l1||i.length||s.length||a.length){var c=new bo(l);return c.dtstart(o),c.tzid(u||void 0),n.forEach(function(f){c.rrule(new O(To(f,o,u),l))}),i.forEach(function(f){c.rdate(f)}),s.forEach(function(f){c.exrule(new O(To(f,o,u),l))}),a.forEach(function(f){c.exdate(f)}),e.compatible&&e.dtstart&&c.rdate(o),c}var d=n[0]||{};return new O(To(d,d.dtstart||e.dtstart||o,d.tzid||e.tzid||u),l)}function Is(r,e){return e===void 0&&(e={}),mT(r,yT(e))}function To(r,e,t){return Be(Be({},r),{dtstart:e,tzid:t})}function yT(r){var e=[],t=Object.keys(r),n=Object.keys(up);if(t.forEach(function(i){K(n,i)||e.push(i)}),e.length)throw new Error("Invalid options: "+e.join(", "));return Be(Be({},up),r)}function gT(r){if(r.indexOf(":")===-1)return{name:"RRULE",value:r};var e=ff(r,":",1),t=e[0],n=e[1];return{name:t,value:n}}function _T(r){var e=gT(r),t=e.name,n=e.value,i=t.split(";");if(!i)throw new Error("empty property name");return{name:i[0].toUpperCase(),parms:i.slice(1),value:n}}function TT(r,e){if(e===void 0&&(e=!1),r=r&&r.trim(),!r)throw new Error("Invalid empty string");if(!e)return r.split(/\s/);for(var t=r.split(` +`),n=0;n0&&i[0]===" "?(t[n-1]+=i.slice(1),t.splice(n,1)):n+=1:t.splice(n,1)}return t}function bT(r){r.forEach(function(e){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(e))throw new Error("unsupported RDATE/EXDATE parm: "+e)})}function lp(r,e){return bT(e),r.split(",").map(function(t){return C.untilStringToDate(t)})}function cp(r){var e=this;return function(t){if(t!==void 0&&(e["_".concat(r)]=t),e["_".concat(r)]!==void 0)return e["_".concat(r)];for(var n=0;n1&&(t+=` (${this.description})`),t+=":";let n=e+" ";for(let i=0;ie(t,n)*-1}};var ce=class{canCreateFilterForLine(e){return ce.lineMatchesFilter(this.filterRegExp(),e)}static lineMatchesFilter(e,t){return e?e.test(t):!1}static getMatch(e,t){return e?t.match(e):null}fieldNameSingular(){return this.fieldName()}supportsSorting(){return!1}parseSortLine(e){return!this.supportsSorting()||!this.canCreateSorterForLine(e)?null:this.createSorterFromLine(e)}canCreateSorterForLine(e){return this.supportsSorting()?ce.lineMatchesFilter(this.sorterRegExp(),e):!1}createSorterFromLine(e){if(!this.supportsSorting())return null;let t=ce.getMatch(this.sorterRegExp(),e);if(t===null)return null;let n=!!t[1];return this.createSorter(n)}sorterRegExp(){if(!this.supportsSorting())throw Error(`sorterRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^sort by ${this.fieldNameSingular()}( reverse)?`)}comparator(){throw Error(`comparator() unimplemented for ${this.fieldNameSingular()}`)}createSorter(e){return new or(this.fieldNameSingular(),this.comparator(),e)}createNormalSorter(){return this.createSorter(!1)}createReverseSorter(){return this.createSorter(!0)}};var Ze=class{constructor(e,t,n){this.instruction=e,this.explanation=n,this.filterFunction=t}explainFilterIndented(e){let t=this.explanation;return t.asString()===this.instruction?`${e}${this.instruction} +`:`${e}${this.instruction} => +${t.asString(" ")} +`}},de=class{constructor(e){this.instruction=e}get filter(){return this._filter}set filter(e){this._filter=e}get filterFunction(){if(this._filter)return this._filter.filterFunction}static fromFilter(e){let t=new de(e.instruction);return t.filter=e,t}static fromError(e,t){let n=new de(e);return n.error=t,n}};var Oa=class{constructor(e,t){this._instruction=e,this._filter=t}canCreateFilterForLine(e){return e==this._instruction}createFilterOrErrorMessage(e){let t=new de(e);return e===this._instruction?(t.filter=new Ze(e,this._filter,new _e(e)),t):(t.error=`do not understand filter: ${e}`,t)}};var Dr=class{constructor(){this._filters=[]}add(e,t){this._filters.push(new Oa(e,t))}canCreateFilterForLine(e){for(let t of this._filters)if(t.canCreateFilterForLine(e))return!0;return!1}createFilterOrErrorMessage(e){for(let n of this._filters){let i=n.createFilterOrErrorMessage(e);if(i.error===void 0)return i}let t=new de(e);return t.error=`do not understand filter: ${e}`,t}};var pe=class extends ce{constructor(){super();this.filterInstructions=new Dr,this.filterInstructions.add(`has ${this.fieldName()} date`,t=>this.date(t)!==null),this.filterInstructions.add(`no ${this.fieldName()} date`,t=>this.date(t)===null),this.filterInstructions.add(`${this.fieldName()} date is invalid`,t=>{let n=this.date(t);return n!==null&&!n.isValid()})}canCreateFilterForLine(t){return this.filterInstructions.canCreateFilterForLine(t)?!0:super.canCreateFilterForLine(t)}createFilterOrErrorMessage(t){let n=this.filterInstructions.createFilterOrErrorMessage(t);if(n.filter!==void 0)return n;let i=new de(t),s=ce.getMatch(this.filterRegExp(),t),a;if(s!==null){let o=ar.parseDate(s[2]);if(!o.isValid())i.error="do not understand "+this.fieldName()+" date";else{let u;s[1]==="before"?(a=c=>{let d=this.date(c);return d?d.isBefore(o):this.filterResultIfFieldMissing()},u=" "+s[1]):s[1]==="after"?(a=c=>{let d=this.date(c);return d?d.isAfter(o):this.filterResultIfFieldMissing()},u=" "+s[1]):(a=c=>{let d=this.date(c);return d?d.isSame(o):this.filterResultIfFieldMissing()},u=" on");let l=pe.getExplanationString(this.fieldName(),u,this.filterResultIfFieldMissing(),o);i.filter=new Ze(t,a,new _e(l))}}else i.error="do not understand query filter ("+this.fieldName()+" date)";return i}static getExplanationString(t,n,i,s){let a=s.format("YYYY-MM-DD (dddd Do MMMM YYYY)"),o=`${t} date is${n} ${a}`;return i&&(o+=` OR no ${t} date`),o}supportsSorting(){return!0}comparator(){return(t,n)=>pe.compareByDate(this.date(t),this.date(n))}static compareByDate(t,n){return t!==null&&n===null?-1:t===null&&n!==null?1:t!==null&&n!==null?t.isValid()&&!n.isValid()?-1:!t.isValid()&&n.isValid()||t.isAfter(n)?1:t.isBefore(n)?-1:0:0}};var xe=class{constructor({rrule:e,baseOnToday:t,referenceDate:n,startDate:i,scheduledDate:s,dueDate:a}){this.rrule=e,this.baseOnToday=t,this.referenceDate=n,this.startDate=i,this.scheduledDate=s,this.dueDate=a}static fromText({recurrenceRuleText:e,startDate:t,scheduledDate:n,dueDate:i}){try{let s=e.match(/^([a-zA-Z0-9, !]+?)( when done)?$/i);if(s==null)return null;let a=s[1].trim(),o=s[2]!==void 0,u=O.parseText(a);if(u!==null){let l=null;i?l=window.moment(i):n?l=window.moment(n):t&&(l=window.moment(t)),!o&&l!==null?u.dtstart=window.moment(l).startOf("day").utc(!0).toDate():u.dtstart=window.moment().startOf("day").utc(!0).toDate();let c=new O(u);return new xe({rrule:c,baseOnToday:o,referenceDate:l,startDate:t,scheduledDate:n,dueDate:i})}}catch(s){}return null}toText(){let e=this.rrule.toText();return this.baseOnToday&&(e+=" when done"),e}next(){var t;let e;if(this.baseOnToday){let n=window.moment(),i=new O(dt(Me({},this.rrule.origOptions),{dtstart:n.startOf("day").utc(!0).toDate()}));e=this.nextAfter(n.endOf("day"),i)}else{let n=window.moment((t=this.referenceDate)!=null?t:void 0).endOf("day");e=this.nextAfter(n,this.rrule)}if(e!==null){let n=null,i=null,s=null;if(this.referenceDate){if(this.startDate){let a=window.moment.duration(this.startDate.diff(this.referenceDate));n=window.moment(e),n.add(Math.round(a.asDays()),"days")}if(this.scheduledDate){let a=window.moment.duration(this.scheduledDate.diff(this.referenceDate));i=window.moment(e),i.add(Math.round(a.asDays()),"days")}if(this.dueDate){let a=window.moment.duration(this.dueDate.diff(this.referenceDate));s=window.moment(e),s.add(Math.round(a.asDays()),"days")}}return{startDate:n,scheduledDate:i,dueDate:s}}return null}identicalTo(e){return this.baseOnToday!==e.baseOnToday||pe.compareByDate(this.startDate,e.startDate)!==0||pe.compareByDate(this.scheduledDate,e.scheduledDate)!==0||pe.compareByDate(this.dueDate,e.dueDate)!==0?!1:this.toText()===e.toText()}nextAfter(e,t){e.utc(!0);let n=window.moment(t.after(e.toDate())),i=this.toText(),s=i.match(/every( \d+)? month(s)?(.*)?/);s!==null&&(i.includes(" on ")||(n=xe.nextAfterMonths(e,n,t,s[1])));let a=i.match(/every( \d+)? year(s)?(.*)?/);return a!==null&&(n=xe.nextAfterYears(e,n,t,a[1])),xe.addTimezone(n).toDate()}static nextAfterMonths(e,t,n,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));xe.isSkippingTooManyMonths(e,t,s);)t=xe.fromOneDayEarlier(e,n);return t}static isSkippingTooManyMonths(e,t,n){let i=t.month()-e.month();return i+=(t.year()-e.year())*12,i>n}static nextAfterYears(e,t,n,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));xe.isSkippingTooManyYears(e,t,s);)t=xe.fromOneDayEarlier(e,n);return t}static isSkippingTooManyYears(e,t,n){return t.year()-e.year()>n}static fromOneDayEarlier(e,t){e.subtract(1,"days").endOf("day");let n=t.origOptions;return n.dtstart=e.startOf("day").toDate(),t=new O(n),window.moment(t.after(e.toDate()))}static addTimezone(e){return window.moment.utc(e).local(!0).startOf("day")}};var Bg=[{index:9999,internalName:"INTERNAL_TESTING_ENABLED_BY_DEFAULT",displayName:"Test Item. Used to validate the Feature Framework.",description:"Description",enabledByDefault:!0,stable:!1}];var Bt=class{constructor(e,t,n,i,s,a){this.internalName=e;this.index=t;this.description=n;this.displayName=i;this.enabledByDefault=s;this.stable=a}static get values(){let e=[];return Bg.forEach(t=>{e=[...e,new Bt(t.internalName,t.index,t.description,t.displayName,t.enabledByDefault,t.stable)]}),e}static get settingsFlags(){let e={};return Bt.values.forEach(t=>{e[t.internalName]=t.enabledByDefault}),e}static fromString(e){for(let t of Bt.values)if(e===t.internalName)return t;throw new RangeError(`Illegal argument passed to fromString(): ${e} does not correspond to any available Feature ${this.prototype.constructor.name}`)}};var LP={globalFilter:"",removeGlobalFilter:!1,setDoneDate:!0,autoSuggestInEditor:!0,autoSuggestMinMatch:0,autoSuggestMaxItems:6,provideAccessKeys:!0,useFilenameAsScheduledDate:!1,filenameAsDateFolders:[],features:Bt.settingsFlags},ss=Me({},LP),H=()=>{for(let r in Bt.settingsFlags)ss.features[r]===void 0&&(ss.features[r]=Bt.settingsFlags[r]);return Me({},ss)},vt=r=>(ss=Me(Me({},ss),r),H());var lr=class{static calculate(e){let t=0;if(e.dueDate!==null){let n=Math.round(window.moment().diff(e.dueDate)/lr.milliSecondsPerDay),i;n>=7?i=1:n>=-14?i=(n+14)*.8/21+.2:i=.2,t+=i*lr.dueCoefficient}switch(e.scheduledDate!==null&&window.moment().isSameOrAfter(e.scheduledDate)&&(t+=1*lr.scheduledCoefficient),e.startDate!==null&&window.moment().isBefore(e.startDate)&&(t+=1*lr.startedCoefficient),e.priority){case"1":t+=1*lr.priorityCoefficient;break;case"2":t+=.65*lr.priorityCoefficient;break;case"3":t+=.325*lr.priorityCoefficient;break}return t}},ur=lr;ur.dueCoefficient=12,ur.scheduledCoefficient=5,ur.startedCoefficient=-3,ur.priorityCoefficient=6,ur.milliSecondsPerDay=1e3*60*60*24;var Kg=require("obsidian");var Gg=require("obsidian");var cd,dd,Hg=({metadataCache:r,vault:e})=>{cd=r,dd=e},Pa=t=>B(void 0,[t],function*({originalTask:r,newTasks:e}){if(dd===void 0||cd===void 0){console.error("Tasks: cannot use File before initializing it.");return}Array.isArray(e)||(e=[e]),zg({originalTask:r,newTasks:e,vault:dd,metadataCache:cd,previousTries:0})}),zg=s=>B(void 0,[s],function*({originalTask:r,newTasks:e,vault:t,metadataCache:n,previousTries:i}){let a=()=>{if(i>10){console.error("Tasks: Too many retries. File update not possible ...");return}let g=Math.min(Math.pow(10,i),100);setTimeout(()=>{zg({originalTask:r,newTasks:e,vault:t,metadataCache:n,previousTries:i+1})},g)},o=t.getAbstractFileByPath(r.path);if(!(o instanceof Gg.TFile))return console.warn(`Tasks: No file found for task ${r.description}. Retrying ...`),a();if(o.extension!=="md"){console.error("Tasks: Only supporting files with the .md file extension.");return}let u=n.getFileCache(o);if(u==null||u===null)return console.warn(`Tasks: No file cache found for file ${o.path}. Retrying ...`),a();let l=u.listItems;if(l===void 0||l.length===0)return console.warn(`Tasks: No list items found in file cache of ${o.path}. Retrying ...`),a();let d=(yield t.read(o)).split(` +`),{globalFilter:f}=H(),h,_=0;for(let g of l){if(g.position.start.lineg.toFileLineString()),...d.slice(h.position.start.line+1)];yield t.modify(o,m.join(` +`))});function WP(r,e,t){return B(this,null,function*(){yield Kg.MarkdownRenderer.renderMarkdown(r,e,t,null)})}function Vg(r,e,t=null){return B(this,null,function*(){var a;t||(t=WP);let n=document.createElement("li");e.parentUlElement.appendChild(n),n.classList.add("task-list-item","plugin-tasks-list-item");let i=document.createElement("span");n.appendChild(i),i.classList.add("tasks-list-text"),yield YP(r,e,i,t);let s=document.createElement("input");return n.appendChild(s),s.classList.add("task-list-item-checkbox"),s.type="checkbox",r.status!=="Todo"&&(s.checked=!0,n.classList.add("is-checked")),s.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),s.disabled=!0;let u=r.toggle();Pa({originalTask:r,newTasks:u})}),n.prepend(s),n.setAttribute("data-task",r.originalStatusCharacter.trim()),n.setAttribute("data-line",e.listIndex.toString()),s.setAttribute("data-line",e.listIndex.toString()),(a=e.layoutOptions)!=null&&a.shortMode&&jP({task:r,element:i,isFilenameUnique:e.isFilenameUnique}),n})}function YP(r,e,t,n){return B(this,null,function*(){let i="",s=new un(e.layoutOptions);for(let a of s.layoutComponents){let o=r.componentToString(s,a);o&&(a==="description"&&(o=BP(o)),i+=o)}yield $P(t,i,"description",r,n)})}function $P(r,e,t,n,i){return B(this,null,function*(){if(t==="description"){yield i(e,r,n.path);let s=r.querySelector("blockquote"),a=s!=null?s:r,o=a.querySelector("p");if(o!==null){for(;o.firstChild;)a.insertBefore(o.firstChild,o);o.remove()}r.querySelectorAll("p").forEach(u=>{u.hasChildNodes()||u.remove()}),r.querySelectorAll(".footnotes").forEach(u=>{u.remove()})}else r.innerHTML=e})}function jP({task:r,element:e,isFilenameUnique:t}){e.addEventListener("mouseenter",()=>{let n=e.createDiv();n.addClasses(["tooltip","mod-right"]),r.recurrence&&n.createDiv().setText(`${St} ${r.recurrence.toText()}`),r.startDate&&n.createDiv().setText(ka({signifier:Nt,date:r.startDate})),r.scheduledDate&&n.createDiv().setText(ka({signifier:xt,date:r.scheduledDate})),r.dueDate&&n.createDiv().setText(ka({signifier:Ct,date:r.dueDate})),r.doneDate&&n.createDiv().setText(ka({signifier:Aa,date:r.doneDate}));let i=r.getLinkText({isFilenameUnique:t});i&&n.createDiv().setText(`\u{1F517} ${i}`),e.addEventListener("mouseleave",()=>{n.remove()})})}function ka({signifier:r,date:e}){return`${r} ${e.format(D.dateFormat)} (${e.from(window.moment().startOf("day"))})`}function BP(r){let{globalFilter:e,removeGlobalFilter:t}=H();return t?r.replace(e,"").trim():r}var Qe=class{static fromPath(e){let{useFilenameAsScheduledDate:t,filenameAsDateFolders:n}=H();return!t||!this.matchesAnyFolder(n,e)?null:this.extractDateFromPath(e)}static matchesAnyFolder(e,t){return e.length===0?!0:e.some(n=>t.startsWith(n+"/"))}static extractDateFromPath(e){let t=Math.max(0,e.lastIndexOf("/")+1),n=e.lastIndexOf("."),i=e.substring(t,n),s=/(\d{4})-(\d{2})-(\d{2})/.exec(i);if(s||(s=/(\d{4})(\d{2})(\d{2})/.exec(i)),s){let a=window.moment([parseInt(s[1]),parseInt(s[2])-1,parseInt(s[3])]);if(a.isValid())return a}return null}static canApplyFallback({startDate:e,scheduledDate:t,dueDate:n}){return e===null&&n===null&&t===null}static updateTaskPath(e,t,n){let i=e.scheduledDate,s=e.scheduledDateIsInferred;return n===null?s&&(s=!1,i=null):s?i=n:this.canApplyFallback(e)&&(i=n,s=!0),new le(dt(Me({},e),{path:t,scheduledDate:i,scheduledDateIsInferred:s}))}static removeInferredStatusIfNeeded(e,t){let n=e.scheduledDateIsInferred?e.scheduledDate:null;return t.map(i=>(n!==null&&!n.isSame(i.scheduledDate,"day")&&(i=new le(dt(Me({},i),{scheduledDateIsInferred:!1}))),i))}};var Re={High:"\u23EB",Medium:"\u{1F53C}",Low:"\u{1F53D}",None:""},St="\u{1F501}",Nt="\u{1F6EB}",xt="\u23F3",Ct="\u{1F4C5}",Aa="\u2705",ut=class{},D=ut;D.dateFormat="YYYY-MM-DD",D.indentationRegex=/^([\s\t>]*)/,D.listMarkerRegex=/([-*]|[0-9]+\.)/,D.checkboxRegex=/\[(.)\]/u,D.afterCheckboxRegex=/ *(.*)/u,D.taskRegex=new RegExp(ut.indentationRegex.source+ut.listMarkerRegex.source+" +"+ut.checkboxRegex.source+ut.afterCheckboxRegex.source,"u"),D.nonTaskRegex=new RegExp(ut.indentationRegex.source+ut.listMarkerRegex.source+"? *("+ut.checkboxRegex.source+")?"+ut.afterCheckboxRegex.source,"u"),D.listItemRegex=new RegExp(ut.indentationRegex.source+ut.listMarkerRegex.source),D.blockLinkRegex=/ \^[a-zA-Z0-9-]+$/u,D.priorityRegex=/([⏫🔼🔽])$/u,D.startDateRegex=/🛫 *(\d{4}-\d{2}-\d{2})$/u,D.scheduledDateRegex=/[⏳⌛] *(\d{4}-\d{2}-\d{2})$/u,D.dueDateRegex=/[📅📆🗓] *(\d{4}-\d{2}-\d{2})$/u,D.doneDateRegex=/✅ *(\d{4}-\d{2}-\d{2})$/u,D.recurrenceRegex=/🔁 ?([a-zA-Z0-9, !]+)$/iu,D.hashTags=/(^|\s)#[^ !@#$%^&*(),.?":{}|<>]*/g,D.hashTagsFromEnd=new RegExp(ut.hashTags.source+"$");var le=class{constructor({status:e,description:t,path:n,indentation:i,listMarker:s,sectionStart:a,sectionIndex:o,originalStatusCharacter:u,precedingHeader:l,priority:c,startDate:d,scheduledDate:f,dueDate:h,doneDate:_,recurrence:m,blockLink:g,tags:R,originalMarkdown:w,scheduledDateIsInferred:k}){this._urgency=null;this.status=e,this.description=t,this.path=n,this.indentation=i,this.listMarker=s,this.sectionStart=a,this.sectionIndex=o,this.originalStatusCharacter=u,this.precedingHeader=l,this.tags=R,this.priority=c,this.startDate=d,this.scheduledDate=f,this.dueDate=h,this.doneDate=_,this.recurrence=m,this.blockLink=g,this.originalMarkdown=w,this.scheduledDateIsInferred=k}static fromLine({line:e,path:t,sectionStart:n,sectionIndex:i,precedingHeader:s,fallbackDate:a}){let o=e.match(D.taskRegex);if(o===null)return null;let u=o[4].trim(),{globalFilter:l}=H();if(!u.includes(l))return null;let c=u,d=o[1],f=o[2],h=o[3],_;switch(h){case" ":_="Todo";break;default:_="Done"}let m=c.match(D.blockLinkRegex),g=m!==null?m[0]:"";g!==""&&(c=c.replace(D.blockLinkRegex,"").trim());let R,w="3",k=null,z=null,fe=!1,he=null,ne=null,Y="",ct=null,et=[],A="",E=20,b=0;do{R=!1;let y=c.match(D.priorityRegex);if(y!==null){switch(y[1]){case Re.Low:w="4";break;case Re.Medium:w="2";break;case Re.High:w="1";break}c=c.replace(D.priorityRegex,"").trim(),R=!0}let x=c.match(D.doneDateRegex);x!==null&&(ne=window.moment(x[1],D.dateFormat),c=c.replace(D.doneDateRegex,"").trim(),R=!0);let S=c.match(D.dueDateRegex);S!==null&&(he=window.moment(S[1],D.dateFormat),c=c.replace(D.dueDateRegex,"").trim(),R=!0);let I=c.match(D.scheduledDateRegex);I!==null&&(z=window.moment(I[1],D.dateFormat),c=c.replace(D.scheduledDateRegex,"").trim(),R=!0);let ee=c.match(D.startDateRegex);ee!==null&&(k=window.moment(ee[1],D.dateFormat),c=c.replace(D.startDateRegex,"").trim(),R=!0);let V=c.match(D.recurrenceRegex);V!==null&&(Y=V[1].trim(),c=c.replace(D.recurrenceRegex,"").trim(),R=!0);let se=c.match(D.hashTagsFromEnd);if(se!=null){c=c.replace(D.hashTagsFromEnd,"").trim(),R=!0;let ae=se[0].trim();A=A.length>0?[ae,A].join(" "):ae}b++}while(R&&b<=E);Y.length>0&&(ct=xe.fromText({recurrenceRuleText:Y,startDate:k,scheduledDate:z,dueDate:he})),Qe.canApplyFallback({startDate:k,scheduledDate:z,dueDate:he})&&a!==null&&(z=a,fe=!0),A.length>0&&(c+=" "+A);let N=c.match(D.hashTags);return N!==null&&(et=N.filter(y=>y!==l).map(y=>y.trim())),new le({status:_,description:c,path:t,indentation:d,listMarker:f,sectionStart:n,sectionIndex:i,originalStatusCharacter:h,precedingHeader:s,priority:w,startDate:k,scheduledDate:z,dueDate:he,doneDate:ne,recurrence:ct,blockLink:g,tags:et,originalMarkdown:e,scheduledDateIsInferred:fe})}toLi(e){return B(this,null,function*(){return Vg(this,e)})}toString(e){let t=new un(e),n="";for(let i of t.layoutComponents)n+=this.componentToString(t,i);return n}componentToString(e,t){var n;switch(t){case"description":return this.description;case"priority":{let i="";return this.priority==="1"?i=" "+Re.High:this.priority==="2"?i=" "+Re.Medium:this.priority==="4"&&(i=" "+Re.Low),i}case"startDate":return this.startDate?e.options.shortMode?" "+Nt:` ${Nt} ${this.startDate.format(D.dateFormat)}`:"";case"scheduledDate":return!this.scheduledDate||this.scheduledDateIsInferred?"":e.options.shortMode?" "+xt:` ${xt} ${this.scheduledDate.format(D.dateFormat)}`;case"doneDate":return this.doneDate?e.options.shortMode?" "+Aa:` ${Aa} ${this.doneDate.format(D.dateFormat)}`:"";case"dueDate":return this.dueDate?e.options.shortMode?" "+Ct:` ${Ct} ${this.dueDate.format(D.dateFormat)}`:"";case"recurrenceRule":return this.recurrence?e.options.shortMode?" "+St:` ${St} ${this.recurrence.toText()}`:"";case"blockLink":return(n=this.blockLink)!=null?n:"";default:throw new Error(`Don't know how to render task component of type '${t}'`)}}toFileLineString(){return`${this.indentation}${this.listMarker} [${this.originalStatusCharacter}] ${this.toString()}`}toggle(){let e=this.status==="Todo"?"Done":"Todo",t=null,n=null;if(e!=="Todo"){let{setDoneDate:a}=H();a&&(t=window.moment()),this.recurrence!==null&&(n=this.recurrence.next())}let i=new le(dt(Me({},this),{status:e,doneDate:t,originalStatusCharacter:e==="Done"?"x":" "})),s=[];if(n!==null){let a=new le(dt(Me(Me({},this),n),{blockLink:""}));s.push(a)}return s.push(i),s}get urgency(){return this._urgency===null&&(this._urgency=ur.calculate(this)),this._urgency}get filename(){let e=this.path.match(/([^/]+)\.md$/);return e!==null?e[1]:null}getLinkText({isFilenameUnique:e}){let t;return e?t=this.filename:t="/"+this.path,t===null?null:(this.precedingHeader!==null&&this.precedingHeader!==t&&(t=t+" > "+this.precedingHeader),t)}static tasksListsIdentical(e,t){return e.length!==t.length?!1:e.every((n,i)=>n.identicalTo(t[i]))}identicalTo(e){let t=["status","description","path","indentation","listMarker","sectionStart","sectionIndex","originalStatusCharacter","precedingHeader","priority","blockLink","scheduledDateIsInferred"];for(let s of t)if(this[s]!==e[s])return!1;if(this.tags.length!==e.tags.length||!this.tags.every(function(s,a){return s===e.tags[a]}))return!1;t=["startDate","scheduledDate","dueDate","doneDate"];for(let s of t){let a=this[s],o=e[s];if(pe.compareByDate(a,o)!==0)return!1}let n=this.recurrence,i=e.recurrence;return n===null&&i!==null||n!==null&&i===null?!1:!(n&&i&&!n.identicalTo(i))}escapeRegExp(e){return e.replace(/([.*+?^${}()|[\]/\\])/g,"\\$1")}getDescriptionWithoutGlobalFilter(){let{globalFilter:e}=H(),t=this.description;if(e.length===0)return t;let n=RegExp("(^|\\s)"+this.escapeRegExp(e)+"($|\\s)","ug");return this.description.search(n)>-1&&(t=t.replace(n,"$1$2").replace(" "," ").trim()),t}};var as=class{constructor(e){this.fetch=e;this._value=void 0}get value(){return this._value===void 0&&(this._value=this.fetch()),this._value}};var Or=class{constructor({metadataCache:e,vault:t,events:n}){this.metadataCache=e,this.metadataCacheEventReferences=[],this.vault=t,this.vaultEventReferences=[],this.events=n,this.eventsEventReferences=[],this.tasksMutex=new Ps,this.state="Cold",this.tasks=[],this.loadedAfterFirstResolve=!1,this.subscribeToCache(),this.subscribeToVault(),this.subscribeToEvents(),this.loadVault()}unload(){for(let e of this.metadataCacheEventReferences)this.metadataCache.offref(e);for(let e of this.vaultEventReferences)this.vault.offref(e);for(let e of this.eventsEventReferences)this.events.off(e)}getTasks(){return this.tasks}getState(){return this.state}notifySubscribers(){this.events.triggerCacheUpdate({tasks:this.tasks,state:this.state})}subscribeToCache(){let e=this.metadataCache.on("resolved",()=>B(this,null,function*(){this.loadedAfterFirstResolve||(this.loadedAfterFirstResolve=!0,this.loadVault())}));this.metadataCacheEventReferences.push(e);let t=this.metadataCache.on("changed",n=>{this.tasksMutex.runExclusive(()=>{this.indexFile(n)})});this.metadataCacheEventReferences.push(t)}subscribeToVault(){let{useFilenameAsScheduledDate:e}=H(),t=this.vault.on("create",s=>{s instanceof Sa.TFile&&this.tasksMutex.runExclusive(()=>{this.indexFile(s)})});this.vaultEventReferences.push(t);let n=this.vault.on("delete",s=>{s instanceof Sa.TFile&&this.tasksMutex.runExclusive(()=>{this.tasks=this.tasks.filter(a=>a.path!==s.path),this.notifySubscribers()})});this.vaultEventReferences.push(n);let i=this.vault.on("rename",(s,a)=>{s instanceof Sa.TFile&&this.tasksMutex.runExclusive(()=>{let o=new as(()=>Qe.fromPath(s.path));this.tasks=this.tasks.map(u=>u.path===a?e?Qe.updateTaskPath(u,s.path,o.value):new le(dt(Me({},u),{path:s.path})):u),this.notifySubscribers()})});this.vaultEventReferences.push(i)}subscribeToEvents(){let e=this.events.onRequestCacheUpdate(t=>{t({tasks:this.tasks,state:this.state})});this.eventsEventReferences.push(e)}loadVault(){return this.tasksMutex.runExclusive(()=>B(this,null,function*(){this.state="Initializing",yield Promise.all(this.vault.getMarkdownFiles().map(e=>this.indexFile(e))),this.state="Warm",this.notifySubscribers()}))}indexFile(e){return B(this,null,function*(){let t=this.metadataCache.getFileCache(e);if(t==null)return;let n=this.tasks.filter(a=>a.path===e.path),i=t.listItems,s=[];if(i!==void 0){let a=yield this.vault.cachedRead(e);s=Or.getTasksFromFileContent(a,i,t,e)}le.tasksListsIdentical(n,s)||(this.getState()=="Warm"&&console.debug(`At least one task, its line number or its heading has changed in ${e.path}: triggering a refresh of all active Tasks blocks in Live Preview and Reading mode views.`),this.tasks=this.tasks.filter(a=>a.path!==e.path),this.tasks.push(...s),this.notifySubscribers())})}static getTasksFromFileContent(e,t,n,i){let s=[],a=e.split(` +`),o=new as(()=>Qe.fromPath(i.path)),u=null,l=0;for(let c of t)if(c.task!==void 0){if((u===null||u.position.end.line=e)return n;return null}static getPrecedingHeader(e,t){if(t===void 0)return null;let n=null;for(let i of t){if(i.position.start.line>e)return n;n=i.heading}return n}};var wd=require("obsidian");var d_=require("obsidian");function zr(){}function gd(r){return r()}function Xg(){return Object.create(null)}function Kr(r){r.forEach(gd)}function Qg(r){return typeof r=="function"}function Jg(r,e){return r!=r?e==e:r!==e||r&&typeof r=="object"||typeof r=="function"}function e_(r){return Object.keys(r).length===0}var t_=!1;function GP(){t_=!0}function HP(){t_=!1}function v(r,e){r.appendChild(e)}function cs(r,e,t){r.insertBefore(e,t||null)}function kn(r){r.parentNode.removeChild(r)}function r_(r,e){for(let t=0;tr.removeEventListener(e,t,n)}function n_(r){return function(e){return e.preventDefault(),r.call(this,e)}}function P(r,e,t){t==null?r.removeAttribute(e):r.getAttribute(e)!==t&&r.setAttribute(e,t)}function KP(r){return Array.from(r.childNodes)}function i_(r,e){e=""+e,r.wholeText!==e&&(r.data=e)}function Ft(r,e){r.value=e==null?"":e}function _d(r,e,t){r.classList[t?"add":"remove"](e)}var Hr=class{constructor(e=!1){this.is_svg=!1,this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,n=null){this.e||(this.is_svg?this.e=zP(t.nodeName):this.e=q(t.nodeName),this.t=t,this.c(e)),this.i(n)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.childNodes)}i(e){for(let t=0;t{let u=s.map(gd).filter(Qg);a?a.push(...u):Kr(u),r.$$.on_mount=[]}),o.forEach(yd)}function a_(r,e){let t=r.$$;t.fragment!==null&&(Kr(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function rk(r,e){r.$$.dirty[0]===-1&&(os.push(r),ZP(),r.$$.dirty.fill(0)),r.$$.dirty[e/31|0]|=1<{let _=h.length?h[0]:f;return l.ctx&&i(l.ctx[d],l.ctx[d]=_)&&(!l.skip_bound&&l.bound[d]&&l.bound[d](_),c&&rk(r,d)),f}):[],l.update(),c=!0,Kr(l.before_update),l.fragment=n?n(l.ctx):!1,e.target){if(e.hydrate){GP();let d=KP(e.target);l.fragment&&l.fragment.l(d),d.forEach(kn)}else l.fragment&&l.fragment.c();e.intro&&ek(r.$$.fragment),tk(r,e.target,e.anchor,e.customElement),HP(),s_()}us(u)}var nk;typeof HTMLElement=="function"&&(nk=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:r}=this.$$;this.$$.on_disconnect=r.map(gd).filter(Qg);for(let e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(r,e,t){this[r]=t}disconnectedCallback(){Kr(this.$$.on_disconnect)}$destroy(){a_(this,1),this.$destroy=zr}$on(r,e){let t=this.$$.callbacks[r]||(this.$$.callbacks[r]=[]);return t.push(e),()=>{let n=t.indexOf(e);n!==-1&&t.splice(n,1)}}$set(r){this.$$set&&!e_(r)&&(this.$$.skip_bound=!0,this.$$set(r),this.$$.skip_bound=!1)}});var Ia=class{$destroy(){a_(this,1),this.$destroy=zr}$on(e,t){let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{let i=n.indexOf(t);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!e_(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var ds=Os(we());var ik={td:"today",tm:"tomorrow",yd:"yesterday",tw:"this week",nw:"next week",weekend:"sat",we:"sat"};function An(r){for(let[e,t]of Object.entries(ik))r=r.replace(RegExp(`\\b${e}\\s`,"i"),t);return r}function u_(r,e,t){let n=r.slice();return n[28]=e[t].value,n[29]=e[t].label,n[30]=e[t].symbol,n}function sk(r){let e,t=r[30]+"",n;return{c(){e=q("span"),n=Gt(t)},m(i,s){cs(i,e,s),v(e,n)},p:zr,d(i){i&&kn(e)}}}function l_(r){let e,t,n,i,s,a,o,u,l=r[29]+"",c,d,f=r[30]&&r[30].charCodeAt(0)>=256,h,_,m,g,R=f&&sk(r);return{c(){e=q("span"),t=q("input"),a=Q(),o=q("label"),u=q("span"),c=Gt(l),d=Q(),R&&R.c(),_=Q(),P(t,"type","radio"),P(t,"id",n="priority-"+r[28]),t.__value=i=r[28],t.value=t.__value,P(t,"accesskey",s=r[8](r[29].charAt(0).toLowerCase())),r[20][0].push(t),P(u,"class","accesskey-first"),P(o,"for",h="priority-"+r[28])},m(w,k){cs(w,e,k),v(e,t),t.checked=t.__value===r[0].priority,v(e,a),v(e,o),v(o,u),v(u,c),v(o,d),R&&R.m(o,null),v(e,_),m||(g=It(t,"change",r[19]),m=!0)},p(w,k){k[0]&256&&s!==(s=w[8](w[29].charAt(0).toLowerCase()))&&P(t,"accesskey",s),k[0]&1&&(t.checked=t.__value===w[0].priority),f&&R.p(w,k)},d(w){w&&kn(e),r[20][0].splice(r[20][0].indexOf(t),1),R&&R.d(),m=!1,g()}}}function ak(r){let e,t,n,i,s,a,o,u,l,c,d,f,h,_,m,g,R,w,k,z,fe,he,ne,Y,ct,et,A,E,b,N,y,x,S,I,ee,V,se,ae,Ce,He,tt,zt,Ie,rt,nn,Kt,Bd,wt,Ts,Gd,Hn,Hd,zd,bs,Kd,zn,vs,Vd,Ut,Es,Xd,sn,Sr,ws,Zd,mr,Rs,Qd,uo,Ms=r[0].status+"",lo,Jd,Kn,co,ef,Ds,tf,an,Vn,rf,Xn,fo,nf,on=r[9],ze=[];for(let F=0;Ftion',s=Q(),a=q("input"),u=Q(),l=q("div"),c=q("label"),d=Gt("Priority"),h=Q();for(let F=0;Fart',Bd=Q(),wt=q("input"),Gd=Q(),Hn=q("code"),Hd=Gt(Nt),zd=Q(),bs=new Hr(!1),Kd=Q(),zn=q("div"),vs=q("label"),vs.innerHTML=`Only + future dates:`,Vd=Q(),Ut=q("input"),Xd=Q(),sn=q("div"),Sr=q("div"),ws=q("label"),ws.textContent="Status:",Zd=Q(),mr=q("input"),Qd=Q(),uo=q("code"),lo=Gt(Ms),Jd=Q(),Kn=q("div"),co=q("span"),co.textContent="Done on:",ef=Q(),Ds=q("code"),tf=Q(),an=q("div"),Vn=q("button"),Vn.textContent="Apply",rf=Q(),Xn=q("button"),Xn.textContent="Cancel",P(i,"for","description"),P(a,"id","description"),P(a,"type","text"),P(a,"class","tasks-modal-description"),P(a,"placeholder","Take out the trash"),P(a,"accesskey",o=r[8]("t")),P(n,"class","tasks-modal-section"),P(c,"for",f="priority-"+r[0].priority),P(l,"class","tasks-modal-section tasks-modal-priorities"),P(g,"for","recurrence"),P(g,"class","accesskey-first"),P(w,"id","description"),P(w,"type","text"),P(w,"placeholder","Try 'every 2 weeks on Thursday'."),P(w,"accesskey",k=r[8]("r")),Y.a=null,P(et,"for","due"),P(et,"class","accesskey-first"),P(E,"id","due"),P(E,"type","text"),P(E,"placeholder",bd),P(E,"accesskey",b=r[8]("d")),I.a=null,P(V,"for","scheduled"),P(V,"class","accesskey-first"),P(ae,"id","scheduled"),P(ae,"type","text"),P(ae,"placeholder",bd),P(ae,"accesskey",Ce=r[8]("s")),rt.a=null,P(Kt,"for","start"),P(wt,"id","start"),P(wt,"type","text"),P(wt,"placeholder",bd),P(wt,"accesskey",Ts=r[8]("a")),bs.a=null,P(vs,"for","forwardOnly"),P(Ut,"id","forwardOnly"),P(Ut,"type","checkbox"),P(Ut,"class","task-list-item-checkbox tasks-modal-checkbox"),P(Ut,"accesskey",Es=r[8]("f")),P(m,"class","tasks-modal-section tasks-modal-dates"),P(ws,"for","status"),P(mr,"id","status"),P(mr,"type","checkbox"),P(mr,"class","task-list-item-checkbox tasks-modal-checkbox"),mr.checked=Rs=r[0].status==="Done",mr.disabled=!0,P(sn,"class","tasks-modal-section tasks-modal-status"),P(Vn,"type","submit"),P(Vn,"class","mod-cta"),P(Xn,"type","button"),P(an,"class","tasks-modal-section tasks-modal-buttons"),_d(t,"with-accesskeys",r[1]),P(e,"class","tasks-modal")},m(F,ue){cs(F,e,ue),v(e,t),v(t,n),v(n,i),v(n,s),v(n,a),Ft(a,r[0].description),r[18](a),v(t,u),v(t,l),v(l,c),v(c,d),v(l,h);for(let We=0;Weno ${y} date`;let I=ds.parseDate(x,S,{forwardDate:S!=null});return I!==null?window.moment(I).format("YYYY-MM-DD"):`invalid ${y} date`}Td(()=>{let{globalFilter:y,provideAccessKeys:x}=H();t(1,g=x);let S=a.getDescriptionWithoutGlobalFilter();(S!=a.description||S.indexOf(y)==-1)&&(m=!0);let I="none";a.priority==="4"?I="low":a.priority==="2"?I="medium":a.priority==="1"&&(I="high"),t(0,l={description:S,status:a.status,priority:I,recurrenceRule:a.recurrence?a.recurrence.toText():"",startDate:a.startDate?a.startDate.format("YYYY-MM-DD"):"",scheduledDate:a.scheduledDate?a.scheduledDate.format("YYYY-MM-DD"):"",dueDate:a.dueDate?a.dueDate.format("YYYY-MM-DD"):"",doneDate:a.doneDate?a.doneDate.format("YYYY-MM-DD"):"",forwardOnly:!0}),setTimeout(()=>{u.focus()},10)});let k=y=>{if(y.key&&!y.altKey&&!y.ctrlKey){let x=R.find(S=>S.label.charAt(0).toLowerCase()==y.key);x&&t(0,l.priority=x.value,l)}},z=()=>{o([])},fe=()=>{let{globalFilter:y}=H(),x=l.description.trim();m&&(x=y+" "+x);let S=null,I=ds.parseDate(l.startDate,new Date,{forwardDate:l.forwardOnly});I!==null&&(S=window.moment(I));let ee=null,V=ds.parseDate(l.scheduledDate,new Date,{forwardDate:l.forwardOnly});V!==null&&(ee=window.moment(V));let se=null,ae=ds.parseDate(l.dueDate,new Date,{forwardDate:l.forwardOnly});ae!==null&&(se=window.moment(ae));let Ce=null;l.recurrenceRule&&(Ce=xe.fromText({recurrenceRuleText:l.recurrenceRule,startDate:S,scheduledDate:ee,dueDate:se}));let He;switch(l.priority){case"low":He="4";break;case"medium":He="2";break;case"high":He="1";break;default:He="3"}let tt=new le(Object.assign(Object.assign({},a),{description:x,status:l.status,priority:He,recurrence:Ce,startDate:S,scheduledDate:ee,dueDate:se,doneDate:window.moment(l.doneDate,"YYYY-MM-DD").isValid()?window.moment(l.doneDate,"YYYY-MM-DD"):null}));o([tt])},he=[[]];function ne(){l.description=this.value,t(0,l)}function Y(y){Ca[y?"unshift":"push"](()=>{u=y,t(2,u)})}function ct(){l.priority=this.__value,t(0,l)}function et(){l.recurrenceRule=this.value,t(0,l)}function A(){l.dueDate=this.value,t(0,l)}function E(){l.scheduledDate=this.value,t(0,l)}function b(){l.startDate=this.value,t(0,l)}function N(){l.forwardOnly=this.checked,t(0,l)}return r.$$set=y=>{"task"in y&&t(13,a=y.task),"onSubmit"in y&&t(14,o=y.onSubmit)},r.$$.update=()=>{if(r.$$.dirty[0]&2){e:t(8,n=y=>g?y:null)}if(r.$$.dirty[0]&1){e:t(0,l.startDate=An(l.startDate),l),t(3,c=w("start",l.startDate,l.forwardOnly?new Date:void 0))}if(r.$$.dirty[0]&1){e:t(0,l.scheduledDate=An(l.scheduledDate),l),t(4,d=w("scheduled",l.scheduledDate,l.forwardOnly?new Date:void 0))}if(r.$$.dirty[0]&1){e:t(0,l.dueDate=An(l.dueDate),l),t(5,f=w("due",l.dueDate,l.forwardOnly?new Date:void 0))}if(r.$$.dirty[0]&98305){e:l.recurrenceRule?t(6,h=t(16,s=t(15,i=xe.fromText({recurrenceRuleText:l.recurrenceRule,startDate:null,scheduledDate:null,dueDate:null}))===null||i===void 0?void 0:i.toText())!==null&&s!==void 0?s:"invalid recurrence rule"):t(6,h="not recurring")}if(r.$$.dirty[0]&1){e:t(7,_=w("done",l.doneDate))}},[l,g,u,c,d,f,h,_,n,R,k,z,fe,a,o,i,s,ne,Y,ct,he,et,A,E,b,N]}var vd=class extends Ia{constructor(e){super(),o_(this,e,ok,ak,Jg,{task:13,onSubmit:14},null,[-1,-1])}},c_=vd;var Sn=class extends d_.Modal{constructor({app:t,task:n,onSubmit:i}){super(t);this.task=n,this.onSubmit=s=>{s.length&&i(s),this.close()}}onOpen(){this.titleEl.setText("Create or edit Task");let{contentEl:t}=this;new c_({target:t,props:{task:this.task,onSubmit:this.onSubmit}})}onClose(){let{contentEl:t}=this;t.empty()}};var f_=({line:r,path:e})=>{var f,h;let t=Qe.fromPath(e),n=le.fromLine({line:r,path:e,sectionStart:0,sectionIndex:0,precedingHeader:null,fallbackDate:t});if(n!==null)return n;let i=r.match(D.nonTaskRegex);if(i===null)return console.error("Tasks: Cannot create task on line:",r),new le({status:"Todo",description:"",path:e,indentation:"",listMarker:"-",originalStatusCharacter:" ",priority:"3",startDate:null,scheduledDate:null,dueDate:null,doneDate:null,recurrence:null,sectionStart:0,sectionIndex:0,precedingHeader:null,blockLink:"",tags:[],originalMarkdown:"",scheduledDateIsInferred:!1});let s=i[1],a=(f=i[2])!=null?f:"-",o=(h=i[4])!=null?h:" ",u=o===" "?"Todo":"Done",l=i[5],c=r.match(D.blockLinkRegex),d=c!==null?c[0]:"";return d!==""&&(l=l.replace(D.blockLinkRegex,"")),new le({status:u,description:l,path:e,indentation:s,listMarker:a,originalStatusCharacter:o,blockLink:d,priority:"3",startDate:null,scheduledDate:null,dueDate:null,doneDate:null,recurrence:null,sectionStart:0,sectionIndex:0,precedingHeader:null,tags:[],originalMarkdown:"",scheduledDateIsInferred:!1})};var p_=(r,e,t,n)=>{var d;if(r)return t instanceof wd.MarkdownView;if(!(t instanceof wd.MarkdownView))return;let i=(d=t.file)==null?void 0:d.path;if(i===void 0)return;let a=e.getCursor().line,o=e.getLine(a),u=f_({line:o,path:i}),l=f=>{let h=Qe.removeInferredStatusIfNeeded(u,f).map(_=>_.toFileLineString()).join(` +`);e.setLine(a,h)};new Sn({app:n,task:u,onSubmit:l}).open()};var Rd=require("obsidian");var h_=(r,e,t)=>{var u;if(r)return t instanceof Rd.MarkdownView;if(!(t instanceof Rd.MarkdownView))return;let n=(u=t.file)==null?void 0:u.path;if(n===void 0)return;let i=e.getCursor(),s=i.line,a=e.getLine(s),o=uk(a,n);e.setLine(s,o),e.setCursor({line:i.line,ch:ck(i.ch,a,o)})},uk=(r,e)=>{let t=r,n=le.fromLine({line:r,path:e,sectionStart:0,sectionIndex:0,precedingHeader:null,fallbackDate:null});if(n!==null)t=lk(n);else{let i=r.match(D.taskRegex);if(i!==null){let a=i[3].toLowerCase()===" "?"x":" ";t=r.replace(D.taskRegex,`$1- [${a}] $4`)}else D.listItemRegex.test(r)?t=r.replace(D.listItemRegex,"$1$2 [ ]"):t=r.replace(D.indentationRegex,"$1- ")}return t},lk=r=>r.toggle().map(n=>n.toFileLineString()).join(` +`),ck=(r,e,t)=>{let n=t.length;if(n<=e.length)return r>=t.length?n:r;let i=13;if(t.match(D.doneDateRegex)&&n-e.length>=i&&(n-=i),n>=2*e.length&&t.search(`.+ +.+`)!==-1)return r+n-e.length;let s=t.search(/[-*]/);return rp_(t,n,i,this.app)}),e.addCommand({id:"toggle-done",name:"Toggle task done",icon:"check-in-circle",editorCheckCallback:h_})}};var Ua=class{constructor({obsidianEvents:e}){this.obsidianEvents=e}onCacheUpdate(e){return this.obsidianEvents.on("obsidian-tasks-plugin:cache-update",e)}triggerCacheUpdate(e){this.obsidianEvents.trigger("obsidian-tasks-plugin:cache-update",e)}onRequestCacheUpdate(e){return this.obsidianEvents.on("obsidian-tasks-plugin:request-cache-update",e)}triggerRequestCacheUpdate(e){this.obsidianEvents.trigger("obsidian-tasks-plugin:request-cache-update",e)}off(e){this.obsidianEvents.offref(e)}};var qa=class{constructor({plugin:e}){this.markdownPostProcessor=this._markdownPostProcessor.bind(this);e.registerMarkdownPostProcessor(this._markdownPostProcessor.bind(this))}_markdownPostProcessor(e,t){return B(this,null,function*(){var c;let{globalFilter:n}=H(),i=e.findAll(".task-list-item").filter(d=>{var _;let f=(_=d.textContent)==null?void 0:_.split(` +`);if(f===void 0)return!1;let h=null;for(let m=0;mm_.ViewPlugin.fromClass(Md),Md=class{constructor(e){this.view=e,this.handleClickEvent=this.handleClickEvent.bind(this),this.view.dom.addEventListener("click",this.handleClickEvent)}destroy(){this.view.dom.removeEventListener("click",this.handleClickEvent)}handleClickEvent(e){let{target:t}=e;if(!t||!(t instanceof HTMLInputElement)||t.type!=="checkbox")return!1;let n=t.closest("ul.plugin-tasks-query-result, div.callout-content");if(n){if(n.matches("div.callout-content")){let f=`obsidian-tasks-plugin warning: Tasks cannot add or remove completion dates or make the next copy of a recurring task for tasks written inside a callout when you click their checkboxes in Live Preview. +If you wanted Tasks to do these things, please undo your change, then either click the line of the task and use the "Toggle Task Done" command, or switch to Reading View to click the checkbox.`;console.warn(f),new y_.Notice(f,45e3)}return!1}let{state:i}=this.view,s=this.view.posAtDOM(t),a=i.doc.lineAt(s),o=le.fromLine({line:a.text,path:"",sectionStart:0,sectionIndex:0,precedingHeader:null,fallbackDate:null});if(console.debug(`Live Preview Extension: toggle called. Position: ${s} Line: ${a.text}`),o===null)return!1;e.preventDefault();let l=o.toggle().map(f=>f.toFileLineString()).join(i.lineBreak),c=i.update({changes:{from:a.from,to:a.to,insert:l}});this.view.dispatch(c);let d=t.checked;return setTimeout(()=>{t.checked=d},1),!0}};var so=require("obsidian");var Pr=class extends ce{constructor(){super(...arguments);this._filters=new Dr}canCreateFilterForLine(t){return this._filters.canCreateFilterForLine(t)}createFilterOrErrorMessage(t){return this._filters.createFilterOrErrorMessage(t)}filterRegExp(){return null}};var Nn=class extends Pr{constructor(){super(),this._filters.add("done",e=>e.status==="Done"),this._filters.add("not done",e=>e.status!=="Done")}fieldName(){return"status"}supportsSorting(){return!0}comparator(){return(e,t)=>e.statust.status?-1:0}};var Dd=class extends pe{filterRegExp(){return Dd.dueRegexp}fieldName(){return"due"}date(e){return e.dueDate}filterResultIfFieldMissing(){return!1}},Vr=Dd;Vr.dueRegexp=/^due (before|after|on)? ?(.*)/;var Od=class extends ce{createFilterOrErrorMessage(e){let t=new de(e),n=ce.getMatch(this.filterRegExp(),e);if(n!==null){let i=n[5],s=null;switch(i){case"low":s="4";break;case"none":s="3";break;case"medium":s="2";break;case"high":s="1";break}if(s===null)return t.error="do not understand priority",t;let a=e,o;switch(n[3]){case"above":o=u=>u.priority.localeCompare(s)<0;break;case"below":o=u=>u.priority.localeCompare(s)>0;break;case"not":o=u=>u.priority!==s;break;default:o=u=>u.priority===s,a=`${this.fieldName()} is ${i}`}t.filter=new Ze(e,o,new _e(a))}else t.error="do not understand query filter (priority)";return t}fieldName(){return"priority"}filterRegExp(){return Od.priorityRegexp}supportsSorting(){return!0}comparator(){return(e,t)=>e.priority.localeCompare(t.priority)}},Xr=Od;Xr.priorityRegexp=/^priority(\s+is)?(\s+(above|below|not))?(\s+(low|none|medium|high))$/;var xn=class{matchesAnyOf(e){return e.some(t=>this.matches(t))}};var Zr=class extends xn{constructor(t){super();this.stringToFind=t}matches(t){return Zr.stringIncludesCaseInsensitive(t,this.stringToFind)}static stringIncludesCaseInsensitive(t,n){return t.toLocaleLowerCase().includes(n.toLocaleLowerCase())}};var Cn=class extends xn{constructor(t){super();this.regex=t}static validateAndConstruct(t){let n=/\/((?![*+?])(?:[^\r\n[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*])+)\/((?:g(?:im?|mi?)?|i(?:gm?|mg?)?|m(?:gi?|ig?)?)?)/,i=t.match(n);if(i!==null){let s=new RegExp(i[1],i[2]);return new Cn(s)}else return null}matches(t){return t.match(this.regex)!==null}};var Je=class extends ce{createFilterOrErrorMessage(e){let t=ce.getMatch(this.filterRegExp(),e);if(t===null)return de.fromError(e,`do not understand query filter (${this.fieldName()})`);let[n,i,s]=t,a=null;if(i.includes("include"))a=new Zr(s);else if(i.includes("regex")&&(a=Cn.validateAndConstruct(s),a===null))return de.fromError(e,`cannot parse regex (${this.fieldName()}); check your leading and trailing slashes for your query`);if(a===null)return de.fromError(e,`do not understand query filter (${this.fieldName()})`);let o=i.match(/not/)!==null,u=new Ze(e,this.getFilter(a,o),new _e(e));return de.fromFilter(u)}static stringIncludesCaseInsensitive(e,t){return Zr.stringIncludesCaseInsensitive(e,t)}fieldPattern(){return this.fieldName()}filterOperatorPattern(){return"includes|does not include|regex matches|regex does not match"}filterRegExp(){return new RegExp(`^(?:${this.fieldPattern()}) (${this.filterOperatorPattern()}) (.*)`)}getFilter(e,t){return n=>{let i=e.matches(this.value(n));return t?!i:i}}comparator(){return(e,t)=>this.value(e).localeCompare(this.value(t),void 0,{numeric:!0})}};var In=class extends Je{fieldName(){return"path"}value(e){return e.path}supportsSorting(){return!0}};var Fn=class extends ce{canCreateFilterForLine(e){return!1}createFilterOrErrorMessage(e){return de.fromError(e,"Filtering by urgency is not yet supported")}fieldName(){return"urgency"}filterRegExp(){throw Error(`filterRegExp() unimplemented for ${this.fieldName()}`)}supportsSorting(){return!0}comparator(){return(e,t)=>t.urgency-e.urgency}};var Un=class{static by(e,t){let n=[new Fn().comparator(),new Nn().comparator(),new Vr().comparator(),new Xr().comparator(),new In().comparator()],i=[];for(let s of e)i.push(s.comparator);return t.sort(Un.makeCompositeComparator([...i,...n]))}static makeCompositeComparator(e){return(t,n)=>{for(let i of e){let s=i(t,n);if(s!==0)return s}return 0}}};var Qr=class extends Je{fieldName(){return"description"}value(e){let t=H().globalFilter;return e.description.replace(t,"").trim()}supportsSorting(){return!0}comparator(){return(e,t)=>{let n=Qr.cleanDescription(e.description),i=Qr.cleanDescription(t.description);return n.localeCompare(i,void 0,{numeric:!0})}}static cleanDescription(e){let t=H().globalFilter;e=e.replace(t,"").trim();let n=/^\[\[?([^\]]*)]]?/,i=e.match(n);if(i!==null){let s=i[1];e=s.substring(s.indexOf("|")+1)+e.replace(n,"")}return e=this.replaceFormatting(e,/^\*\*([^*]+)\*\*/),e=this.replaceFormatting(e,/^\*([^*]+)\*/),e=this.replaceFormatting(e,/^==([^=]+)==/),e=this.replaceFormatting(e,/^__([^_]+)__/),e=this.replaceFormatting(e,/^_([^_]+)_/),e}static replaceFormatting(e,t){let n=e.match(t);return n!==null&&(e=n[1]+e.replace(t,"")),e}};var Pd=class extends pe{filterRegExp(){return Pd.doneRegexp}fieldName(){return"done"}date(e){return e.doneDate}filterResultIfFieldMissing(){return!1}},fs=Pd;fs.doneRegexp=/^done (before|after|on)? ?(.*)/;var La=class extends Pr{constructor(){super(),this._filters.add("exclude sub-items",e=>{if(e.indentation==="")return!0;let t=e.indentation.lastIndexOf(">");return t===-1?!1:/^ ?$/.test(e.indentation.slice(t+1))})}fieldName(){return"exclude"}};var Wa=class extends Je{fieldName(){return"heading"}value(e){return e.precedingHeader?e.precedingHeader:""}supportsSorting(){return!0}};var kd=class extends pe{filterRegExp(){return kd.scheduledRegexp}fieldName(){return"scheduled"}date(e){return e.scheduledDate}filterResultIfFieldMissing(){return!1}},ps=kd;ps.scheduledRegexp=/^scheduled (before|after|on)? ?(.*)/;var Ad=class extends pe{filterRegExp(){return Ad.startRegexp}fieldName(){return"start"}date(e){return e.startDate}filterResultIfFieldMissing(){return!0}},hs=Ad;hs.startRegexp=/^starts (before|after|on)? ?(.*)/;var qn=class extends ce{constructor(){super();this.filterInstructions=new Dr,this.filterInstructions.add(qn.instructionForFieldPresence,t=>this.dates(t).some(n=>n!==null)),this.filterInstructions.add(qn.instructionForFieldAbsence,t=>!this.dates(t).some(n=>n!==null))}canCreateFilterForLine(t){return this.filterInstructions.canCreateFilterForLine(t)?!0:super.canCreateFilterForLine(t)}createFilterOrErrorMessage(t){let n=this.filterInstructions.createFilterOrErrorMessage(t);if(n.filter!==void 0)return n;let i=new de(t),s=ce.getMatch(this.filterRegExp(),t);if(s!==null){let a=ar.parseDate(s[2]);if(!a.isValid())i.error="do not understand happens date";else{let o,u;s[1]==="before"?(o=c=>this.dates(c).some(d=>d&&d.isBefore(a)),u=" "+s[1]):s[1]==="after"?(o=c=>this.dates(c).some(d=>d&&d.isAfter(a)),u=" "+s[1]):(o=c=>this.dates(c).some(d=>d&&d.isSame(a)),u=" on");let l=pe.getExplanationString("due, start or scheduled",u,!1,a);i.filter=new Ze(t,o,new _e(l))}}else i.error="do not understand query filter (happens date)";return i}earliestDate(t){return new qn().dates(t).sort(pe.compareByDate)[0]}filterRegExp(){return qn.happensRegexp}dates(t){return Array.of(t.startDate,t.scheduledDate,t.dueDate)}fieldName(){return"happens"}supportsSorting(){return!0}comparator(){return(t,n)=>pe.compareByDate(this.earliestDate(t),this.earliestDate(n))}},cr=qn;cr.happensRegexp=/^happens (before|after|on)? ?(.*)/,cr.instructionForFieldPresence="has happens date",cr.instructionForFieldAbsence="no happens date";var Ya=class extends Pr{constructor(){super(),this._filters.add("is recurring",e=>e.recurrence!==null),this._filters.add("is not recurring",e=>e.recurrence===null)}fieldName(){return"recurring"}};var $a=class extends Je{fieldNamePlural(){return this.fieldNameSingular()+"s"}fieldName(){return`${this.fieldNameSingular()}/${this.fieldNamePlural()}`}fieldPattern(){return`${this.fieldNameSingular()}|${this.fieldNamePlural()}`}filterOperatorPattern(){return`${super.filterOperatorPattern()}|include|do not include`}value(e){return this.values(e).join(", ")}getFilter(e,t){return n=>{let i=e.matchesAnyOf(this.values(n));return t?!i:i}}};var Jr=class extends $a{fieldNameSingular(){return"tag"}values(e){return e.tags}supportsSorting(){return!0}createSorterFromLine(e){let t=e.match(this.sorterRegExp());if(t===null)return null;let n=!!t[1],i=isNaN(+t[2])?1:+t[2],s=Jr.makeCompareByTagComparator(i);return new or(this.fieldNameSingular(),s,n)}sorterRegExp(){return/^sort by tag( reverse)?[\s]*(\d+)?/}comparator(){return Jr.makeCompareByTagComparator(1)}static makeCompareByTagComparator(e){return(t,n)=>{if(t.tags.length===0&&n.tags.length===0)return 0;if(t.tags.length===0)return 1;if(n.tags.length===0)return-1;let i=e-1;if(t.tags.length=e)return 1;if(n.tags.length=e)return-1;if(t.tags.lengththis.filterTaskWithParsedQuery(u,s),o=this.constructExplanation(s);return n.filter=new Ze(t,a,o),n}catch(s){let a=s instanceof Error?s.message:"unknown error type";return n.error=`malformed boolean query -- ${a} (check the documentation for guidelines)`,n}return n}preprocessExpression(t){return t.replace(/\(([^()]+)\)/g,'("$1")')}filterTaskWithParsedQuery(t,n){let i=o=>o==="true",s=o=>o?"true":"false",a=[];for(let o of n)if(o.name==="IDENTIFIER"){if(o.value==null)throw Error("null token value");let l=this.subFields[o.value.trim()].filterFunction(t);a.push(s(l))}else if(o.name==="OPERATOR")if(o.value==="NOT"){let u=i(a.pop());a.push(s(!u))}else if(o.value==="OR"){let u=i(a.pop()),l=i(a.pop());a.push(s(u||l))}else if(o.value==="AND"){let u=i(a.pop()),l=i(a.pop());a.push(s(u&&l))}else if(o.value==="XOR"){let u=i(a.pop()),l=i(a.pop());a.push(s(u&&!l||!u&&l))}else throw Error("Unsupported operator: "+o.value);else throw Error("Unsupported token type: "+o);return i(a[0])}constructExplanation(t){let n=[];for(let i of t)if(i.name==="IDENTIFIER"){if(i.value==null)throw Error("null token value");let s=this.subFields[i.value.trim()];n.push(s.explanation)}else if(i.name==="OPERATOR")if(i.value==="NOT"){let s=n.pop();n.push(_e.booleanNot([s]))}else if(i.value==="OR"){let s=n.pop(),a=n.pop();n.push(_e.booleanOr([a,s]))}else if(i.value==="AND"){let s=n.pop(),a=n.pop();n.push(_e.booleanAnd([a,s]))}else if(i.value==="XOR"){let s=n.pop(),a=n.pop();n.push(_e.booleanXor([a,s]))}else throw Error("Unsupported operator: "+i.value);else throw Error("Unsupported token type: "+i);return n[0]}};var Ka=class extends Je{fieldName(){return"filename"}value(e){let t=e.filename;return t===null?"":t+".md"}supportsSorting(){return!0}};var Va=class extends Je{fieldName(){return"recurrence"}value(e){return e.recurrence!==null?e.recurrence.toText():""}};var S_=[()=>new Nn,()=>new Ya,()=>new Xr,()=>new cr,()=>new hs,()=>new ps,()=>new Vr,()=>new fs,()=>new In,()=>new Qr,()=>new Jr,()=>new Wa,()=>new La,()=>new Ha,()=>new Ka,()=>new Fn,()=>new Va];function za(r){for(let e of S_){let t=e();if(t.canCreateFilterForLine(r))return t.createFilterOrErrorMessage(r)}return null}function N_(r){let e=/^sort by /;if(r.match(e)===null)return null;for(let t of S_){let i=t().parseSortLine(r);if(i)return i}return null}var Xa=class{constructor(e,t){this.nestingLevel=e,this.name=t}};var Za=class{constructor(e){this.lastHeadingAtLevel=new Array;let n=e.keys().next().value.length;for(let i=0;it.set(o,a)),e.pop();return t}};var Ja=class extends Map{},eo=class extends Qa{},to=class{constructor(e,t){this.groups=new Ja;let n=this.buildGroupingTree(e,t);this.groups=n.generateAllPaths(),this.groups=this.getSortedGroups()}buildGroupingTree(e,t){let n=new eo(t),i=[n];for(let s of e){let a=[];for(let o of i)for(let u of o.values){let l=Ar.getGroupNamesForTask(s.property,u);for(let c of l){let d=o.children.get(c);d===void 0&&(d=new eo([]),o.children.set(c,d),a.push(d)),d.values.push(u)}}i=a}return n}getSortedGroups(){return new Ja([...this.groups.entries()].sort())}};var ro=class{constructor(e,t,n){this.groups=e,this.groupHeadings=t,this.tasks=n}tasksAsStringOfLines(){let e="";for(let t of this.tasks)e+=t.toFileLineString()+` +`;return e}toString(){let e=` +`;e+=`Group names: [${this.groups}] +`;for(let t of this.groupHeadings)e+=`${"#".repeat(4+t.nestingLevel)} ${t.name} +`;return e+=this.tasksAsStringOfLines(),e}};var no=class{constructor(e,t){this._groups=new Array;this._totalTaskCount=0;this._totalTaskCount=t.length;let n=new to(e,t);this.addTasks(n)}get groups(){return this._groups}totalTasksCount(){return this._totalTaskCount}toString(){let e="";for(let n of this.groups)e+=n.toString(),e+=` +--- +`;return e+=` +${this.totalTasksCount()} tasks +`,e}addTasks(e){let t=new Za(e.groups);for(let[n,i]of e.groups){let s=t.getHeadingsForTaskGroup(n),a=new ro(n,s,i);this.add(a)}}add(e){this._groups.push(e)}};var J=class{static by(e,t){return new no(e,t)}static getGroupNamesForTask(e,t){let n=J.groupers[e];return n(t)}static escapeMarkdownCharacters(e){return e.replace(/\\/g,"\\\\").replace(/_/g,"\\_")}static groupByPriority(e){let t="ERROR";switch(e.priority){case"1":t="High";break;case"2":t="Medium";break;case"3":t="None";break;case"4":t="Low";break}return[`Priority ${e.priority}: ${t}`]}static groupByRecurrence(e){return e.recurrence!==null?[e.recurrence.toText()]:["None"]}static groupByRecurring(e){return e.recurrence!==null?["Recurring"]:["Not Recurring"]}static groupByStartDate(e){return[J.stringFromDate(e.startDate,"start")]}static groupByScheduledDate(e){return[J.stringFromDate(e.scheduledDate,"scheduled")]}static groupByDueDate(e){return[J.stringFromDate(e.dueDate,"due")]}static groupByDoneDate(e){return[J.stringFromDate(e.doneDate,"done")]}static groupByHappensDate(e){let t=new cr().earliestDate(e);return[J.stringFromDate(t,"happens")]}static stringFromDate(e,t){return e===null?"No "+t+" date":e.format(J.groupDateFormat)}static groupByPath(e){return[J.escapeMarkdownCharacters(e.path.replace(".md",""))]}static groupByFolder(e){let t=e.path,n=e.filename+".md",i=t.substring(0,t.lastIndexOf(n));return i===""?["/"]:[J.escapeMarkdownCharacters(i)]}static groupByFileName(e){let t=e.filename;return t===null?["Unknown Location"]:["[["+J.escapeMarkdownCharacters(t)+"]]"]}static groupByRoot(e){let t=e.path.replace(/\\/g,"/"),n=t.indexOf("/");return n==-1?["/"]:[J.escapeMarkdownCharacters(t.substring(0,n+1))]}static groupByBacklink(e){if(e.getLinkText({isFilenameUnique:!0})===null)return["Unknown Location"];let n="Unknown Location";if(e.filename!==null&&(n=J.escapeMarkdownCharacters(e.filename)),e.precedingHeader===null||e.precedingHeader.length===0)return[n];let i=J.groupByHeading(e)[0];return n===i?[n]:[`${n} > ${i}`]}static groupByStatus(e){return[e.status]}static groupByHeading(e){return e.precedingHeader===null||e.precedingHeader.length===0?["(No heading)"]:[e.precedingHeader]}static groupByTags(e){return e.tags.length==0?["(No tags)"]:e.tags}},Ar=J;Ar.groupDateFormat="YYYY-MM-DD dddd",Ar.groupers={backlink:J.groupByBacklink,done:J.groupByDoneDate,due:J.groupByDueDate,filename:J.groupByFileName,folder:J.groupByFolder,happens:J.groupByHappensDate,heading:J.groupByHeading,path:J.groupByPath,priority:J.groupByPriority,recurrence:J.groupByRecurrence,recurring:J.groupByRecurring,root:J.groupByRoot,scheduled:J.groupByScheduledDate,start:J.groupByStartDate,status:J.groupByStatus,tags:J.groupByTags};var Bn=class{constructor({source:e}){this._limit=void 0;this._layoutOptions=new Qn;this._filters=[];this._error=void 0;this._sorting=[];this._grouping=[];this.groupByRegexp=/^group by (backlink|done|due|filename|folder|happens|heading|path|priority|recurrence|recurring|root|scheduled|start|status|tags)/;this.hideOptionsRegexp=/^(hide|show) (task count|backlink|priority|start date|scheduled date|done date|due date|recurrence rule|edit button|urgency)/;this.shortModeRegexp=/^short/;this.explainQueryRegexp=/^explain/;this.limitRegexp=/^limit (to )?(\d+)( tasks?)?/;this.commentRegexp=/^#.*/;this.source=e,e.split(` +`).map(t=>t.trim()).forEach(t=>{switch(!0){case t==="":break;case this.shortModeRegexp.test(t):this._layoutOptions.shortMode=!0;break;case this.explainQueryRegexp.test(t):this._layoutOptions.explainQuery=!0;break;case this.limitRegexp.test(t):this.parseLimit({line:t});break;case this.parseSortBy({line:t}):break;case this.groupByRegexp.test(t):this.parseGroupBy({line:t});break;case this.hideOptionsRegexp.test(t):this.parseHideOptions({line:t});break;case this.commentRegexp.test(t):break;case this.parseFilter(t):break;default:this._error=`do not understand query: ${t}`}})}explainQuery(){return`Explanation of this Tasks code block query: + +`+this.explainQueryWithoutIntroduction()}explainQueryWithoutIntroduction(){let e="",{globalFilter:t}=H();t.length!==0&&(e+=`Only tasks containing the global filter '${t}'. + +`);let n=this.filters.length;if(n===0)e+="No filters supplied. All tasks will match the query.";else for(let i=0;i0&&(e+=` +`),e+=this.filters[i].explainFilterIndented("");return this._limit!==void 0&&(e+=` + +At most ${this._limit} task`,this._limit!==1&&(e+="s"),e+=`. +`),e}get limit(){return this._limit}get layoutOptions(){return this._layoutOptions}get filters(){return this._filters}get sorting(){return this._sorting}get grouping(){return this._grouping}get error(){return this._error}applyQueryToTasks(e){this.filters.forEach(n=>{e=e.filter(n.filterFunction)});let t=Un.by(this.sorting,e).slice(0,this.limit);return Ar.by(this.grouping,t)}parseHideOptions({line:e}){let t=e.match(this.hideOptionsRegexp);if(t!==null){let n=t[1]==="hide";switch(t[2]){case"task count":this._layoutOptions.hideTaskCount=n;break;case"backlink":this._layoutOptions.hideBacklinks=n;break;case"priority":this._layoutOptions.hidePriority=n;break;case"start date":this._layoutOptions.hideStartDate=n;break;case"scheduled date":this._layoutOptions.hideScheduledDate=n;break;case"due date":this._layoutOptions.hideDueDate=n;break;case"done date":this._layoutOptions.hideDoneDate=n;break;case"recurrence rule":this._layoutOptions.hideRecurrenceRule=n;break;case"edit button":this._layoutOptions.hideEditButton=n;break;case"urgency":this._layoutOptions.hideUrgency=n;break;default:this._error="do not understand hide/show option"}}}parseFilter(e){let t=za(e);return t!=null?(t.filter?this._filters.push(t.filter):this._error=t.error,!0):!1}parseLimit({line:e}){let t=e.match(this.limitRegexp);t!==null?this._limit=Number.parseInt(t[2],10):this._error="do not understand query limit"}parseSortBy({line:e}){let t=N_(e);return t?(this._sorting.push(t),!0):!1}parseGroupBy({line:e}){let t=e.match(this.groupByRegexp);t!==null?this._grouping.push({property:t[1]}):this._error="do not understand query grouping"}};var io=class{constructor({plugin:e,events:t}){this.addQueryRenderChild=this._addQueryRenderChild.bind(this);this.app=e.app,this.events=t,e.registerMarkdownCodeBlockProcessor("tasks",this._addQueryRenderChild.bind(this))}_addQueryRenderChild(e,t,n){return B(this,null,function*(){n.addChild(new $d({app:this.app,events:this.events,container:t,source:e,filePath:n.sourcePath}))})}},$d=class extends so.MarkdownRenderChild{constructor({app:t,events:n,container:i,source:s,filePath:a}){super(i);switch(this.app=t,this.events=n,this.source=s,this.filePath=a,this.containerEl.className){case"block-language-tasks":this.query=new Bn({source:s}),this.queryType="tasks";break;default:this.query=new Bn({source:s}),this.queryType="tasks";break}}onload(){this.events.triggerRequestCacheUpdate(this.render.bind(this)),this.renderEventRef=this.events.onCacheUpdate(this.render.bind(this)),this.reloadQueryAtMidnight()}onunload(){this.renderEventRef!==void 0&&this.events.off(this.renderEventRef),this.queryReloadTimeout!==void 0&&clearTimeout(this.queryReloadTimeout)}reloadQueryAtMidnight(){let t=new Date;t.setHours(24,0,0,0);let n=new Date,i=t.getTime()-n.getTime();this.queryReloadTimeout=setTimeout(()=>{this.query=new Bn({source:this.source}),this.events.triggerRequestCacheUpdate(this.render.bind(this)),this.reloadQueryAtMidnight()},i+1e3)}render(i){return B(this,arguments,function*({tasks:t,state:n}){var a;let s=this.containerEl.createEl("div");if(n==="Warm"&&this.query.error===void 0){console.debug(`Render ${this.queryType} called for a block in active file "${this.filePath}", to select from ${t.length} tasks: plugin state: ${n}`),this.query.layoutOptions.explainQuery&&this.createExplanation(s);let o=this.query.applyQueryToTasks(t);for(let l of o.groups){this.addGroupHeadings(s,l.groupHeadings);let{taskList:c}=yield this.createTasksList({tasks:l.tasks,content:s});s.appendChild(c)}let u=o.totalTasksCount();console.debug(`${u} of ${t.length} tasks displayed in a block in "${this.filePath}"`),this.addTaskCount(s,u)}else this.query.error!==void 0?s.setText(`Tasks query: ${this.query.error}`):s.setText("Loading Tasks ...");(a=this.containerEl.firstChild)==null||a.replaceWith(s)})}createExplanation(t){let n=this.query.explainQuery(),i=t.createEl("pre");i.addClasses(["plugin-tasks-query-explanation"]),i.setText(n),t.appendChild(i)}createTasksList(i){return B(this,arguments,function*({tasks:t,content:n}){let s=t.length,a=n.createEl("ul");a.addClasses(["contains-task-list","plugin-tasks-query-result"]);for(let o=0;oh.remove());let f=this.query.layoutOptions.shortMode;this.query.layoutOptions.hideUrgency||this.addUrgency(c,u),this.query.layoutOptions.hideBacklinks||this.addBacklinks(c,u,f,l),this.query.layoutOptions.hideEditButton||this.addEditButton(c,u),a.appendChild(c)}return{taskList:a,tasksCount:s}})}addEditButton(t,n){t.createEl("a",{cls:"tasks-edit"}).onClickEvent(s=>{s.preventDefault();let a=u=>{Pa({originalTask:n,newTasks:Qe.removeInferredStatusIfNeeded(n,u)})};new Sn({app:this.app,task:n,onSubmit:a}).open()})}addUrgency(t,n){let i=new Intl.NumberFormat().format(n.urgency);t.createSpan({text:i,cls:"tasks-urgency"})}addGroupHeadings(t,n){for(let i of n)this.addGroupHeading(t,i)}addGroupHeading(t,n){return B(this,null,function*(){let i;n.nestingLevel===0?i=t.createEl("h4",{cls:"tasks-group-heading"}):n.nestingLevel===1?i=t.createEl("h5",{cls:"tasks-group-heading"}):i=t.createEl("h6",{cls:"tasks-group-heading"}),yield so.MarkdownRenderer.renderMarkdown(n.name,i,this.filePath,this)})}addBacklinks(t,n,i,s){var l;let a=t.createSpan({cls:"tasks-backlink"});i||a.append(" (");let o=a.createEl("a");if(o.href=n.path,o.setAttribute("data-href",n.path),o.rel="noopener",o.target="_blank",o.addClass("internal-link"),i&&o.addClass("internal-link-short-mode"),n.precedingHeader!==null){let c=n.precedingHeader.replace(/#/g,"");o.href=o.href+"#"+c,o.setAttribute("data-href",o.getAttribute("data-href")+"#"+c)}let u;i?u=" \u{1F517}":u=(l=n.getLinkText({isFilenameUnique:s}))!=null?l:"",o.setText(u),i||a.append(")")}addTaskCount(t,n){this.query.layoutOptions.hideTaskCount||t.createDiv({text:`${n} task${n!==1?"s":""}`,cls:"tasks-count"})}isFilenameUnique({task:t}){let n=t.path.match(/([^/]*)\..+$/i);if(n===null)return;let i=n[1];return this.app.vault.getMarkdownFiles().filter(a=>{if(a.basename===i)return!0}).length<2}};var Et=require("obsidian");var Gn=class extends Et.PluginSettingTab{constructor({plugin:t}){super(t.app,t);this.plugin=t}display(){let{containerEl:t}=this;t.empty(),t.createEl("h3",{text:"Tasks Settings"}),t.createEl("p",{cls:"tasks-setting-important",text:"Changing any settings requires a restart of obsidian."}),t.createEl("h4",{text:"Global filter Settings"}),new Et.Setting(t).setName("Global task filter").setDesc(Gn.createFragmentWithHTML('

    Recommended: Leave empty if you want all checklist items in your vault to be tasks managed by this plugin.

    Use a global filter if you want Tasks to only act on a subset of your "- [ ]" checklist items, so that a checklist item must include the specified string in its description in order to be considered a task.

    For example, if you set the global filter to #task, the Tasks plugin will only handle checklist items tagged with #task.
    Other checklist items will remain normal checklist items and not appear in queries or get a done date set.

    See the documentation.

    ')).addText(n=>{let i=H();n.setPlaceholder("e.g. #task or TODO").setValue(i.globalFilter).onChange(s=>B(this,null,function*(){vt({globalFilter:s}),yield this.plugin.saveSettings()}))}),new Et.Setting(t).setName("Remove global filter from description").setDesc("Enabling this removes the string that you set as global filter from the task description when displaying a task.").addToggle(n=>{let i=H();n.setValue(i.removeGlobalFilter).onChange(s=>B(this,null,function*(){vt({removeGlobalFilter:s}),yield this.plugin.saveSettings()}))}),t.createEl("h4",{text:"Date Settings"}),new Et.Setting(t).setName("Set done date on every completed task").setDesc("Enabling this will add a timestamp \u2705 YYYY-MM-DD at the end when a task is toggled to done").addToggle(n=>{let i=H();n.setValue(i.setDoneDate).onChange(s=>B(this,null,function*(){vt({setDoneDate:s}),yield this.plugin.saveSettings()}))}),new Et.Setting(t).setName("Use filename as Scheduled date for undated tasks").setDesc(Gn.createFragmentWithHTML('Save time entering Scheduled (\u23F3) dates.
    If this option is enabled, any undated tasks will be given a default Scheduled date extracted from their file name.
    The date in the file name must be in one of YYYY-MM-DD or YYYYMMDD formats.
    Undated tasks have none of Due (\u{1F4C5} ), Scheduled (\u23F3) and Start (\u{1F6EB}) dates.

    See the documentation.

    ')).addToggle(n=>{let i=H();n.setValue(i.useFilenameAsScheduledDate).onChange(s=>B(this,null,function*(){vt({useFilenameAsScheduledDate:s}),yield this.plugin.saveSettings()}))}),new Et.Setting(t).setName("Folders with default Scheduled dates").setDesc("Leave empty if you want to use default Scheduled dates everywhere, or enter a comma-separated list of folders.").addText(n=>B(this,null,function*(){let i=H();yield this.plugin.saveSettings(),n.setValue(Gn.renderFolderArray(i.filenameAsDateFolders)).onChange(s=>B(this,null,function*(){let a=Gn.parseCommaSeparatedFolders(s);vt({filenameAsDateFolders:a}),yield this.plugin.saveSettings()}))})),t.createEl("h4",{text:"Auto-suggest Settings"}),new Et.Setting(t).setName("Auto-suggest task content").setDesc("Enabling this will open an intelligent suggest menu while typing inside a recognized task line.").addToggle(n=>{let i=H();n.setValue(i.autoSuggestInEditor).onChange(s=>B(this,null,function*(){vt({autoSuggestInEditor:s}),yield this.plugin.saveSettings()}))}),new Et.Setting(t).setName("Minimum match length for auto-suggest").setDesc("If higher than 0, auto-suggest will be triggered only when the beginning of any supported keywords is recognized.").addSlider(n=>{let i=H();n.setLimits(0,3,1).setValue(i.autoSuggestMinMatch).setDynamicTooltip().onChange(s=>B(this,null,function*(){vt({autoSuggestMinMatch:s}),yield this.plugin.saveSettings()}))}),new Et.Setting(t).setName("Maximum number of auto-suggestions to show").setDesc('How many suggestions should be shown when an auto-suggest menu pops up (including the "\u23CE" option).').addSlider(n=>{let i=H();n.setLimits(3,12,1).setValue(i.autoSuggestMaxItems).setDynamicTooltip().onChange(s=>B(this,null,function*(){vt({autoSuggestMaxItems:s}),yield this.plugin.saveSettings()}))}),t.createEl("h4",{text:"Dialog Settings"}),new Et.Setting(t).setName("Provide access keys in dialogs").setDesc("If the access keys (keyboard shortcuts) for various controls in dialog boxes conflict with system keyboard shortcuts or assistive technology functionality that is important for you, you may want to deactivate them here.").addToggle(n=>{let i=H();n.setValue(i.provideAccessKeys).onChange(s=>B(this,null,function*(){vt({provideAccessKeys:s}),yield this.plugin.saveSettings()}))})}static parseCommaSeparatedFolders(t){return t.split(",").map(n=>n.trim()).map(n=>n.replace(/^\/|\/$/g,"")).filter(n=>n!=="")}static renderFolderArray(t){return t.join(",")}},_s=Gn;_s.createFragmentWithHTML=t=>createFragment(n=>n.createDiv().innerHTML=t);var C_=require("obsidian");var Tk=`${Nt}${xt}${Ct}`;function x_(r,e,t){let n=[];n=n.concat(Ek(r,e,t)),n=n.concat(wk(r,e,t));let i=vk(r,t),s=jd(r,/([a-zA-Z'_-]*)/g,e),a=!1;if(s&&s.length>0){let o=s[0];if(o.length>=Math.max(1,t.autoSuggestMinMatch)){let u=i.filter(l=>l.displayText.toLowerCase().includes(o.toLowerCase()));for(let l of u)n.push({suggestionType:"match",displayText:l.displayText,appendText:l.appendText,insertAt:s.index,insertSkip:o.length}),a=!0}}return!a&&t.autoSuggestMinMatch===0&&(n=n.concat(i)),n.length>0&&!n.some(o=>o.suggestionType==="match")&&n.unshift({suggestionType:"empty",displayText:"\u23CE",appendText:` +`}),n=n.slice(0,t.autoSuggestMaxItems),n}function bk(r){if(Object.values(Re).some(e=>e.length>0&&r.includes(e)))return!0}function vk(r,e){let t=[];return r.includes(Ct)||t.push({displayText:`${Ct} due date`,appendText:`${Ct} `}),r.includes(Nt)||t.push({displayText:`${Nt} start date`,appendText:`${Nt} `}),r.includes(xt)||t.push({displayText:`${xt} scheduled date`,appendText:`${xt} `}),bk(r)||(t.push({displayText:`${Re.High} high priority`,appendText:`${Re.High} `}),t.push({displayText:`${Re.Medium} medium priority`,appendText:`${Re.Medium} `}),t.push({displayText:`${Re.Low} low priority`,appendText:`${Re.Low} `})),r.includes(St)||t.push({displayText:`${St} recurring (repeat)`,appendText:`${St} `}),t}function Ek(r,e,t){let n=["today","tomorrow","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","next week","next month","next year"],i=[],s=new RegExp(`([${Tk}])\\s*([0-9a-zA-Z ]*)`,"ug"),a=jd(r,s,e);if(a&&a.length>=2){let o=a[1],u=a[2];if(u.length1?ar.parseDate(An(u),!0):null;l&&l.isValid()&&i.push({displayText:`${l.format(D.dateFormat)}`,appendText:`${o} ${l.format(D.dateFormat)} `,insertAt:a.index,insertSkip:a[0].length});let c=1,d=5,f=n.filter(h=>u&&u.length>=c&&h.toLowerCase().includes(u.toLowerCase())).slice(0,d);f.length===0&&(f=n.slice(0,d));for(let h of f){let m=`${ar.parseDate(h,!0).format(D.dateFormat)}`;i.push({suggestionType:"match",displayText:`${h} (${m})`,appendText:`${o} ${m} `,insertAt:a.index,insertSkip:a[0].length})}}return i}function wk(r,e,t){var o;let n=["every","every day","every week","every month","every month on the","every year","every week on Sunday","every week on Monday","every week on Tuesday","every week on Wednesday","every week on Thursday","every week on Friday","every week on Saturday"],i=[],s=new RegExp(`(${St})\\s*([0-9a-zA-Z ]*)`,"ug"),a=jd(r,s,e);if(a&&a.length>=2){let u=a[1],l=a[2];if(l.length0){let h=(o=xe.fromText({recurrenceRuleText:l,startDate:null,scheduledDate:null,dueDate:null}))==null?void 0:o.toText();if(h){let _=`${u} ${h} `;if(i.push({suggestionType:"match",displayText:`\u2705 ${h}`,appendText:_,insertAt:a.index,insertSkip:a[0].length}),a[0]==_)return[]}}let c=1,d=t.autoSuggestMaxItems/2,f=n.filter(h=>l&&l.length>=c&&h.toLowerCase().includes(l.toLowerCase())).slice(0,d);f.length===0&&l.trim().length===0&&(f=n.slice(0,d));for(let h of f)i.push({suggestionType:"match",displayText:`${h}`,appendText:`${u} ${h} `,insertAt:a.index,insertSkip:a[0].length})}return i}function jd(r,e,t){let n=r.matchAll(e);for(let i of n)if((i==null?void 0:i.index)&&i.index<=t&&t<=i.index+i[0].length)return i;return[]}var ao=class extends C_.EditorSuggest{constructor(t,n){super(t);this.settings=n}onTrigger(t,n,i){if(!this.settings.autoSuggestInEditor)return null;let s=n.getLine(t.line);return s.contains(this.settings.globalFilter)&&s.match(D.taskRegex)?{start:{line:t.line,ch:0},end:{line:t.line,ch:s.length},query:s}:null}getSuggestions(t){let n=t.query,i=t.editor.getCursor(),s=x_(n,i.ch,this.settings),a=[];for(let o of s)a.push(dt(Me({},o),{context:t}));return a}renderSuggestion(t,n){n.setText(t.displayText)}selectSuggestion(t,n){var u,l,c;let i=t.context.editor;if(t.suggestionType==="empty"){this.close();let d=new KeyboardEvent("keydown",{code:"Enter",key:"Enter"});(l=(u=i==null?void 0:i.cm)==null?void 0:u.contentDOM)==null||l.dispatchEvent(d);return}let s=t.context.editor.getCursor(),a={line:s.line,ch:(c=t.insertAt)!=null?c:s.ch},o=t.insertSkip?{line:s.line,ch:a.ch+t.insertSkip}:void 0;t.context.editor.replaceRange(t.appendText,a,o),t.context.editor.setCursor({line:s.line,ch:a.ch+t.appendText.length})}};var oo=class extends I_.Plugin{onload(){return B(this,null,function*(){console.log('loading plugin "tasks"'),yield this.loadSettings(),this.addSettingTab(new _s({plugin:this})),Hg({metadataCache:this.app.metadataCache,vault:this.app.vault});let t=new Ua({obsidianEvents:this.app.workspace});this.cache=new Or({metadataCache:this.app.metadataCache,vault:this.app.vault,events:t}),this.inlineRenderer=new qa({plugin:this}),this.queryRenderer=new io({plugin:this,events:t}),this.registerEditorExtension(g_()),this.registerEditorSuggest(new ao(this.app,H())),new Fa({plugin:this})})}onunload(){var t;console.log('unloading plugin "tasks"'),(t=this.cache)==null||t.unload()}loadSettings(){return B(this,null,function*(){let t=yield this.loadData();vt(t)})}saveSettings(){return B(this,null,function*(){yield this.saveData(H())})}}; diff --git a/.obsidian/plugins/obsidian-tasks-plugin/manifest.json b/.obsidian/plugins/obsidian-tasks-plugin/manifest.json new file mode 100644 index 0000000..87a350b --- /dev/null +++ b/.obsidian/plugins/obsidian-tasks-plugin/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-tasks-plugin", + "name": "Tasks", + "version": "1.22.0", + "minAppVersion": "0.14.6", + "description": "Task management for Obsidian", + "author": "Martin Schenck and Clare Macrae", + "authorUrl": "https://github.com/obsidian-tasks-group", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-tasks-plugin/styles.css b/.obsidian/plugins/obsidian-tasks-plugin/styles.css new file mode 100644 index 0000000..04091f5 --- /dev/null +++ b/.obsidian/plugins/obsidian-tasks-plugin/styles.css @@ -0,0 +1,199 @@ +.plugin-tasks-query-explanation{ + /* Prevent long explanation lines wrapping, so they are more readable, + especially on small screens. + + A horizontal scroll bar will be displayed, if the explanation + is too wide to fit. + */ + --code-white-space: pre; +} + +.tasks-count { + color: var(--text-faint); + padding-left: 20px; +} + +/* Pencil icon. */ +.tasks-edit { + background-color: var(--text-faint); + mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%20width%3D%221em%22%20height%3D%221em%22%20style%3D%22-ms-transform%3A%20rotate(360deg)%3B%20-webkit-transform%3A%20rotate(360deg)%3B%20transform%3A%20rotate(360deg)%3B%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20viewBox%3D%220%200%201536%201536%22%3E%3Cpath%20d%3D%22M363%201408l91-91l-235-235l-91%2091v107h128v128h107zm523-928q0-22-22-22q-10%200-17%207l-542%20542q-7%207-7%2017q0%2022%2022%2022q10%200%2017-7l542-542q7-7%207-17zm-54-192l416%20416l-832%20832H0v-416zm683%2096q0%2053-37%2090l-166%20166l-416-416l166-165q36-38%2090-38q53%200%2091%2038l235%20234q37%2039%2037%2091z%22%20fill%3D%22%23626262%22%2F%3E%3C%2Fsvg%3E"); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%20width%3D%221em%22%20height%3D%221em%22%20style%3D%22-ms-transform%3A%20rotate(360deg)%3B%20-webkit-transform%3A%20rotate(360deg)%3B%20transform%3A%20rotate(360deg)%3B%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20viewBox%3D%220%200%201536%201536%22%3E%3Cpath%20d%3D%22M363%201408l91-91l-235-235l-91%2091v107h128v128h107zm523-928q0-22-22-22q-10%200-17%207l-542%20542q-7%207-7%2017q0%2022%2022%2022q10%200%2017-7l542-542q7-7%207-17zm-54-192l416%20416l-832%20832H0v-416zm683%2096q0%2053-37%2090l-166%20166l-416-416l166-165q36-38%2090-38q53%200%2091%2038l235%20234q37%2039%2037%2091z%22%20fill%3D%22%23626262%22%2F%3E%3C%2Fsvg%3E"); + mask-size: contain; + -webkit-mask-size: contain; + display: inline-block; + width: 1em; + height: 1em; + vertical-align: middle; + margin-left: 0.5em; + cursor: pointer; +} + +/* Urgency score */ +.tasks-urgency { + font-size: var(--font-ui-smaller); + font-family: var(--font-interface); + padding: 2px 6px; + border-radius: var(--radius-s); + color: var(--text-normal); + background-color: var(--background-secondary); + margin-left: 0.5em; + line-height: 1; +} + +.internal-link.internal-link-short-mode { + text-decoration: none; +} + +.tasks-list-text { + position: relative; +} + +.tasks-list-text .tooltip { + position: absolute; + top: 0px; + left: 0px; + white-space: nowrap; +} + +.tasks-setting-important { + color: red; + font-weight: bold; +} + +.tasks-modal-section + .tasks-modal-section { + margin-top: 16px; +} + +.tasks-modal-section label { + display: inline-block; + margin-bottom: 4px; +} + +.tasks-modal-section label > span { + display: inline-block; +} + +.tasks-modal .with-accesskeys .accesskey-first::first-letter, +.tasks-modal .with-accesskeys .accesskey { + text-decoration: underline; + text-underline-offset: 1pt; +} + +.tasks-modal-buttons { + display: grid; + grid-template-columns: 3fr 1fr; + column-gap: .5em; +} + +.tasks-modal label + input[type="checkbox"] { + margin-left: 0.67em; + top: 2px; +} + +.tasks-modal input[type="text"] { + width: 100%; +} + +.tasks-modal-priorities { + display: grid; + grid-template-columns: 4em 5em 5em 7em 5em; + grid-column-gap: 1.33em; +} + +.tasks-modal-priorities span { + line-height: 1.41; + white-space: nowrap; +} + +.tasks-modal-priorities label { + border-radius: var(--input-radius); + padding: 2px 3px; +} + +.tasks-modal-priorities input:focus + label { + box-shadow: 0 0 0 2px var(--background-modifier-border-focus); + border-color: var(--background-modifier-border-focus); +} + +.tasks-modal-priorities input:checked + label > span:first-child { + font-weight: bold; +} + +.tasks-modal-priorities input:not(:checked) + label > span:nth-child(2) { + filter: grayscale(100%) opacity(60%); +} + +.tasks-modal-dates { + display: grid; + grid-template-columns: 5.5em auto; + column-gap: .5em; + row-gap: 5px; +} + +.tasks-modal-dates > label { + grid-column: 1; + margin-top: 6px; +} + +.tasks-modal-dates > input, .tasks-modal-dates > code { + grid-column: 2; + align-items: stretch; +} + +.tasks-modal-dates > code { + margin-bottom: 5px; +} + +.tasks-modal-dates > div { + grid-column-start: 1; + grid-column-end: 3; +} + +.tasks-modal-status { + display: flex; + justify-content: space-between; +} + +@media (max-width: 649px) { + .tasks-modal-priorities { + grid-template-columns: 4em 7.5em 5em; + margin-bottom: -10px; + } + .tasks-modal-priorities > label { + grid-row: 1 / span 2; + } + .tasks-modal-dates { + grid-template-columns: 1fr; + } + .tasks-modal-dates > label { + margin: 0; + } + .tasks-modal-dates > input, .tasks-modal-dates > code { + grid-column: 1; + } + .tasks-modal-dates > div { + grid-column-end: 1; + } + .tasks-modal-status { + display: block; + } +} + +@media (max-width: 399px) { + .tasks-modal-priorities { + grid-template-columns: 4em auto; + } + .tasks-modal-priorities > label { + grid-row: 1 / span 4; + } +} + +@media (max-width: 259px) { + .tasks-modal-priorities { + grid-template-columns: 1fr; + margin-bottom: 0; + } + .tasks-modal-priorities > label { + grid-row: 1; + } +} diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json new file mode 100644 index 0000000..a2aa9a1 --- /dev/null +++ b/.obsidian/workspace.json @@ -0,0 +1,163 @@ +{ + "main": { + "id": "6ae951a76f77b808", + "type": "split", + "children": [ + { + "id": "d2484c0cd1898ce7", + "type": "tabs", + "children": [ + { + "id": "28f1090e043b6c83", + "type": "leaf", + "state": { + "type": "empty", + "state": {} + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9e4b2d8bf3f1e97f", + "type": "split", + "children": [ + { + "id": "e07493049a939d4e", + "type": "tabs", + "children": [ + { + "id": "7cb0262d1780b639", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical" + } + } + }, + { + "id": "72f39dcfa36c0152", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "b0c6410777dfc58b", + "type": "leaf", + "state": { + "type": "starred", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "c46115cbe16372ca", + "type": "split", + "children": [ + { + "id": "735447b83d07c286", + "type": "tabs", + "children": [ + { + "id": "9b3a7e6169f99548", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "22adc284fe78495a", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "1809c073e47abcf2", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + }, + { + "id": "2f265725c8d83858", + "type": "leaf", + "state": { + "type": "outline", + "state": {} + } + }, + { + "id": "37a0d4b229607ffd", + "type": "leaf", + "state": { + "type": "git-view", + "state": {} + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "obsidian-excalidraw-plugin:New Excalidraw drawing": false, + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false + } + }, + "active": "28f1090e043b6c83", + "lastOpenFiles": [ + "sql_server/error_handling.sql", + "2023-01-09.md", + "visidata.md", + "webmin.md", + "wekan.md", + "telnet.md", + "ssh.md", + "vagrant.md", + "virtualbox.md", + "regex.md" + ] +} \ No newline at end of file diff --git a/2023-01-09.md b/2023-01-09.md deleted file mode 100644 index e69de29..0000000 diff --git a/esqlate.md b/esqlate.md index 942e885..9d78b64 100644 --- a/esqlate.md +++ b/esqlate.md @@ -1,4 +1,4 @@ - -https://github.com/forbesmyester/esqlate - + +https://github.com/forbesmyester/esqlate + builds little forms out of sql \ No newline at end of file diff --git a/hard_disks.md b/hard_disks.md index 814e56e..ce86622 100644 --- a/hard_disks.md +++ b/hard_disks.md @@ -1,9 +1,9 @@ -RAID edits +## RAID edits * Enter the system setup menu at boot time, then you also have to press additional keys to get to the RAID screen * create a new virtual disk and assign the new disks, then initialize the VD -Mounting the new VD +## Mounting the new VD * find the disk with `fdisk -l | grep '^Disk'` * create a partition table * `fdisk /dev/sdb` diff --git a/install_list.md b/install_list.md deleted file mode 100644 index 430ec1f..0000000 --- a/install_list.md +++ /dev/null @@ -1,18 +0,0 @@ -dbeaver -vs code -bash -vundle - -npgsql -pspg -postgresql apt repo -pgadmin -windows postgres - -nodejs - - -power bi -ms data gateway -excel add-in - diff --git a/multipass.md b/multipass.md index f75cd93..716be50 100644 --- a/multipass.md +++ b/multipass.md @@ -1,121 +1,121 @@ -mutlipass - ubuntu vm's from canonical - -snap install multipass --classic (apparently this option is required and allows the snap to violate it's sandbox??) - -https://multipass.run/ - - -launch an instance: -* `multipass launch --name ubuntu-lts` -* `multipass stop ubuntu-lts` -* `multipass delete ubuntu-lts-custom` -* `multipass purge` -* `multipass find` - -you have to `sudo multipass shell` to get a sudo-able shell - - -setup -``` -sudo apt update -sudo apt upgrade -wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - -echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list -sudo apt update -sudo apt -y install postgresql-12 postgresql-client-12 - -sudo apt install nginx -sudo apt install nodejs -sudo apt install redis -sudo apt install npm -sudo npm install -g n -n lts - -sudo su root -curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - -echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list -exit - -sudo apt update - -apt install -y \ - imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \ - g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \ - bison build-essential libssl-dev libyaml-dev libreadline6-dev \ - zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \ - nginx redis-server redis-tools postgresql postgresql-contrib \ - certbot python-certbot-nginx yarn libidn11-dev libicu-dev libjemalloc-dev -``` - -install mastodon -``` -adduser --disabled-login mastodon -sudo su - mastodon -git clone https://github.com/rbenv/rbenv.git ~/.rbenv -cd ~/.rbenv && src/configure && make -C src -echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc -echo 'eval "$(rbenv init -)"' >> ~/.bashrc -exec bash -git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build - -RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.5 -rbenv global 2.6.5 -gem update --system -gem install bundler --no-document -exit - -sudo -u postgres psql -CREATE USER mastodon CREATEDB; -\q - -git clone https://github.com/tootsuite/mastodon.git live && cd live -git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1) - - -bundle install \ - -j$(getconf _NPROCESSORS_ONLN) \ - --deployment --without development test -yarn install --pure-lockfile -``` - -need to set database credentials before the env file is built -``` -sudo su postgres -psql -alter role mastodon password 'mastodon'; -\q - -sudo vim //etc/redis/redis.conf -requirepass password -``` - - -``` -RAILS_ENV=production bundle exec rake mastodon:setup -``` -this will prompt a bunch of setting, after a while mail from localhost = no -this will prompt smtp setup -``` - -compilation failed, complained about memory - -setup nginx files: -``` -cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon -ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon -``` - -then you have to replace example.com with a target domain in the nginx files -using vim -> `:%s/example.com/hptrow.me` - - -copy sevice files: -``` -cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/ -``` - -setup load services -``` -sudo systemctl daemon-reload -sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming +mutlipass - ubuntu vm's from canonical + +snap install multipass --classic (apparently this option is required and allows the snap to violate it's sandbox??) + +https://multipass.run/ + + +launch an instance: +* `multipass launch --name ubuntu-lts` +* `multipass stop ubuntu-lts` +* `multipass delete ubuntu-lts-custom` +* `multipass purge` +* `multipass find` + +you have to `sudo multipass shell` to get a sudo-able shell + + +setup +``` +sudo apt update +sudo apt upgrade +wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - +echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list +sudo apt update +sudo apt -y install postgresql-12 postgresql-client-12 + +sudo apt install nginx +sudo apt install nodejs +sudo apt install redis +sudo apt install npm +sudo npm install -g n +n lts + +sudo su root +curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - +echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list +exit + +sudo apt update + +apt install -y \ + imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \ + g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \ + bison build-essential libssl-dev libyaml-dev libreadline6-dev \ + zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \ + nginx redis-server redis-tools postgresql postgresql-contrib \ + certbot python-certbot-nginx yarn libidn11-dev libicu-dev libjemalloc-dev +``` + +install mastodon +``` +adduser --disabled-login mastodon +sudo su - mastodon +git clone https://github.com/rbenv/rbenv.git ~/.rbenv +cd ~/.rbenv && src/configure && make -C src +echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc +echo 'eval "$(rbenv init -)"' >> ~/.bashrc +exec bash +git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build + +RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.5 +rbenv global 2.6.5 +gem update --system +gem install bundler --no-document +exit + +sudo -u postgres psql +CREATE USER mastodon CREATEDB; +\q + +git clone https://github.com/tootsuite/mastodon.git live && cd live +git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1) + + +bundle install \ + -j$(getconf _NPROCESSORS_ONLN) \ + --deployment --without development test +yarn install --pure-lockfile +``` + +need to set database credentials before the env file is built +``` +sudo su postgres +psql +alter role mastodon password 'mastodon'; +\q + +sudo vim //etc/redis/redis.conf +requirepass password +``` + + +``` +RAILS_ENV=production bundle exec rake mastodon:setup +``` +this will prompt a bunch of setting, after a while mail from localhost = no +this will prompt smtp setup +``` + +compilation failed, complained about memory + +setup nginx files: +``` +cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon +ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon +``` + +then you have to replace example.com with a target domain in the nginx files +using vim -> `:%s/example.com/hptrow.me` + + +copy sevice files: +``` +cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/ +``` + +setup load services +``` +sudo systemctl daemon-reload +sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming sudo systemctl enable mastodon-* \ No newline at end of file diff --git a/nodejs.md b/nodejs.md index 7fc7b90..c5089e6 100644 --- a/nodejs.md +++ b/nodejs.md @@ -1,36 +1,36 @@ -version management -=================================================================================================================================== - -## nvm - -can use nvm to manage nodejs versions. -not really sure how this works, but it is per user and operates off bash scripts and variables - -going to have to pull from github. It will curl to clone the repo and then add some stuff to your bashrc to make it work. -`exec bash` after install to refresh - -nvm install --lts -nvm use version - -## npm n helper - -npm can be used to manage node itself through n -https://github.com/tj/n - -sudo npm cache clean -f - - -1. setup & *own* directyory with versions - * `sudo mkdir -p /usr/local/n` - * `sudo chown -R $(whoami) /usr/local/n` -2. own the instalation folders - * `sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share` -3. install n: `sudo npm install -g n` - - -## upgrading npm in windows -`npm install -g npm-windows-upgrade` -or just download from the wesite - -## npm -to update npm do `npm install npm@latest -g` +version management +=================================================================================================================================== + +## nvm + +can use nvm to manage nodejs versions. +not really sure how this works, but it is per user and operates off bash scripts and variables + +going to have to pull from github. It will curl to clone the repo and then add some stuff to your bashrc to make it work. +`exec bash` after install to refresh + +nvm install --lts +nvm use version + +## npm n helper + +npm can be used to manage node itself through n +https://github.com/tj/n + +sudo npm cache clean -f + + +1. setup & *own* directyory with versions + * `sudo mkdir -p /usr/local/n` + * `sudo chown -R $(whoami) /usr/local/n` +2. own the instalation folders + * `sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share` +3. install n: `sudo npm install -g n` + + +## upgrading npm in windows +`npm install -g npm-windows-upgrade` +or just download from the wesite + +## npm +to update npm do `npm install npm@latest -g` diff --git a/plv8.md b/plv8.md new file mode 100644 index 0000000..aed8ecf --- /dev/null +++ b/plv8.md @@ -0,0 +1,5 @@ + +[PLV8 Documentation For Building](https://plv8.github.io/#building) + +* To build plv8 you have to download a tarbal of the code and use `make` +* Beyond the listed dependencies I had to `apt-get install postgresql-server-dev` to get a `postgres.h` file that is needed \ No newline at end of file diff --git a/sc.md b/sc.md index 3e684ce..2c5761c 100644 --- a/sc.md +++ b/sc.md @@ -1,4 +1,4 @@ -to open a csv file in sc -`cat file.csv | psc -k -d, | sc` - +to open a csv file in sc +`cat file.csv | psc -k -d, | sc` + sc-im supposedly does a better job with csv, but have not been able to get it to compile \ No newline at end of file diff --git a/sql_server/error_handling.sql b/sql_server/error_handling.sql index f43b84c..778cae4 100644 --- a/sql_server/error_handling.sql +++ b/sql_server/error_handling.sql @@ -1,33 +1,33 @@ -CREATE PROC RLARP.TEST AS - -BEGIN - PRINT 'Hi'; --non-erroring statement - create table #temp(x varchar(255)); --create a permanent object to call outside block after error - insert into #temp select 1/0; - insert into #temp select 'hi'; --fill it after error - --select * from #temp; --select it after error - PRINT ERROR_MESSAGE(); --error message is gone - -END; - -begin transaction x -declare @e int; -DECLARE @em varchar(max); -begin try - EXEC RLARP.TEST; -end TRY -begin CATCH - select @e = ERROR_NUMBER(), @em = ERROR_MESSAGE(); - if @e <> 0 - BEGIN - rollback transaction x; - print @em; - END - if @e = 0 - BEGIN - commit transaction x; - print 'ok'; - end -end catch - +CREATE PROC RLARP.TEST AS + +BEGIN + PRINT 'Hi'; --non-erroring statement + create table #temp(x varchar(255)); --create a permanent object to call outside block after error + insert into #temp select 1/0; + insert into #temp select 'hi'; --fill it after error + --select * from #temp; --select it after error + PRINT ERROR_MESSAGE(); --error message is gone + +END; + +begin transaction x +declare @e int; +DECLARE @em varchar(max); +begin try + EXEC RLARP.TEST; +end TRY +begin CATCH + select @e = ERROR_NUMBER(), @em = ERROR_MESSAGE(); + if @e <> 0 + BEGIN + rollback transaction x; + print @em; + END + if @e = 0 + BEGIN + commit transaction x; + print 'ok'; + end +end catch + SELECT * FROM #temp \ No newline at end of file diff --git a/ufw.md b/ubuntu/ufw.md similarity index 100% rename from ufw.md rename to ubuntu/ufw.md