From ec09fb32408868075ea87aca6c216b8667ac6312 Mon Sep 17 00:00:00 2001 From: realtradam Date: Fri, 6 Jan 2023 20:52:17 -0500 Subject: init --- src/.obsidian/plugins/obsidian-link-converter/main.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/.obsidian/plugins/obsidian-link-converter/main.js (limited to 'src/.obsidian/plugins/obsidian-link-converter/main.js') diff --git a/src/.obsidian/plugins/obsidian-link-converter/main.js b/src/.obsidian/plugins/obsidian-link-converter/main.js new file mode 100644 index 0000000..4f35fba --- /dev/null +++ b/src/.obsidian/plugins/obsidian-link-converter/main.js @@ -0,0 +1,16 @@ +"use strict";var t=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 e(t,e,i,n){return new(i||(i=Promise))((function(o,a){function l(t){try{r(n.next(t))}catch(t){a(t)}}function s(t){try{r(n.throw(t))}catch(t){a(t)}}function r(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(l,s)}r((n=n.apply(t,e||[])).next())}))}const i={mySetting:"default",contextMenu:!0,finalLinkFormat:"not-change",keepMtime:!1};class n extends t.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}display(){let{containerEl:e}=this;e.empty(),e.createEl("h2",{text:"Obsidian Link Converter"}),new t.Setting(e).setName("File Context Menu").setDesc("Turn this option off if you don't want single file commands to appear within the file context menu").addToggle((t=>{t.setValue(this.plugin.settings.contextMenu).onChange((t=>{this.plugin.settings.contextMenu=t,this.plugin.saveSettings(),t?this.plugin.app.workspace.on("file-menu",this.plugin.addFileMenuItems):this.plugin.app.workspace.off("file-menu",this.plugin.addFileMenuItems)}))})),new t.Setting(e).setName("Converted Link Format").setDesc("Select the preferred option for the final link format after the conversion. Plugin will use the preferrence where possible").addDropdown((t=>{t.addOption("not-change","Do not change").addOption("relative-path","Relative Path").addOption("absolute-path","Absolute Path").addOption("shortest-path","Shortest Path").setValue(this.plugin.settings.finalLinkFormat).onChange((t=>{this.plugin.settings.finalLinkFormat=t,this.plugin.saveSettings()}))})),new t.Setting(e).setName("Keep mTime (Last Modified Time)").setDesc("Turn on this option if you want plugin to keep the mtime of files same during the link conversion").addToggle((t=>t.setValue(this.plugin.settings.keepMtime).onChange((t=>{this.plugin.settings.keepMtime=t,this.plugin.saveSettings()}))));const i=e.createDiv("coffee");i.addClass("oz-coffee-div");i.createEl("a",{href:"https://ko-fi.com/L3L356V6Q"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi2.png?v=3"}}).height=45}}const o=(t,i)=>e(void 0,void 0,void 0,(function*(){const e=[];let n=yield i.app.vault.read(t),o=n.match(/\[\[.*?\]\]/g);if(o){let i=/(?<=\[\[).*?(?=(\]|\|))/,n=/(?<=\|).*(?=]])/;for(let a of o){if(w(a)){let i=y(a),n=A(a);if(""!==i&&""!==n){let o={type:"wikiTransclusion",match:a,linkText:i,altOrBlockRef:n,sourceFilePath:t.path};e.push(o);continue}}let o=a.match(i);if(o){if(o[0].startsWith("http"))continue;let i=a.match(n),l={type:"wiki",match:a,linkText:o[0],altOrBlockRef:i?i[0]:"",sourceFilePath:t.path};e.push(l)}}}let a=n.match(/\[(^$|.*?)\]\((.*?)\)/g);if(a){let i=/(?<=\().*(?=\))/,n=/(?<=\[)(^$|.*?)(?=\])/;for(let o of a){if(M(o)){let i=y(o),n=A(o);if(""!==i&&""!==n){let a={type:"mdTransclusion",match:o,linkText:i,altOrBlockRef:n,sourceFilePath:t.path};e.push(a);continue}}let a=o.match(i);if(a){if(a[0].startsWith("http"))continue;let i=o.match(n),l={type:"markdown",match:o,linkText:a[0],altOrBlockRef:i?i[0]:"",sourceFilePath:t.path};e.push(l)}}}return e})),a=(i,n,o)=>e(void 0,void 0,void 0,(function*(){let e=yield n.app.vault.read(i),a="markdown"===o?yield c(e,i,n):yield h(e,i,n),l=n.settings.keepMtime?yield n.app.vault.adapter.stat(t.normalizePath(i.path)):{};yield n.app.vault.modify(i,a,l)})),l=(i,n)=>e(void 0,void 0,void 0,(function*(){let e=i.app.workspace.getActiveFile();"md"===e.extension?yield a(e,i,n):new t.Notice("Active File is not a Markdown File")})),s=(i,n,o)=>e(void 0,void 0,void 0,(function*(){let e=((e,i)=>{var n=[];return function e(i,o){var a=o.vault.getAbstractFileByPath(i);if(a instanceof t.TFolder&&a.children)for(let i of a.children)i instanceof t.TFile&&"md"===i.extension&&n.push(i),i instanceof t.TFolder&&e(i.path,o)}(e,i.app),n})(i.path,n),l=new t.Notice("Starting link conversion",0);try{let t=e.length,i=0;for(let s of e)i++,l.setMessage(`Converting the links in notes ${i}/${t}.`),d(n.app,s.path,"excalidraw-plugin")||d(n.app,s.path,"kanban-plugin")||(yield a(s,n,o))}catch(t){console.log(t)}finally{l.hide()}})),r=(i,n)=>e(void 0,void 0,void 0,(function*(){let e=n.app.workspace.getActiveViewOfType(t.MarkdownView);if(e){let o=e.editor,a=o.getSelection(),l=e.file;if(""!==a){let t;"markdown"===i?t=yield c(a,l,n):"wiki"===i&&(t=yield h(a,l,n)),o.replaceSelection(t)}else new t.Notice("You didn't select any text.")}else new t.Notice("There is no active leaf open.",3e3)})),C=(t,i)=>e(void 0,void 0,void 0,(function*(){s(t.app.vault.getRoot(),t,i)})),d=(t,e,i)=>{let n=t.metadataCache.getCache(e);return n.frontmatter&&n.frontmatter[i]},c=(t,i,n)=>e(void 0,void 0,void 0,(function*(){let e=t,a=yield o(i,n),l=a.filter((t=>"wiki"===t.type));for(let t of l){let o=p("markdown",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}let s=a.filter((t=>"wikiTransclusion"===t.type));for(let t of s){let o=p("mdTransclusion",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}return e})),h=(t,i,n)=>e(void 0,void 0,void 0,(function*(){let e=t,a=yield o(i,n),l=a.filter((t=>"markdown"===t.type));for(let t of l){let o=p("wiki",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}let s=a.filter((t=>"mdTransclusion"===t.type));for(let t of s){let o=p("wikiTransclusion",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}return e})),L=(t,e,i,n)=>{let o;if("absolute-path"===n)o=t.path;else if("relative-path"===n)o=function(t,e){function i(t){let e=0;for(;e=0&&""===t[i];i--);return e>i?[]:t.slice(e,i-e+1)}for(var n=i(t.split("/")),o=i(e.split("/")),a=Math.min(n.length,o.length),l=a,s=0;se.name===t.name)).length>1?t.path:t.name}return o.endsWith(".md")&&(o=o.replace(".md","")),o},p=(t,e,i,n,o)=>{let a,l=e,s=decodeURI(l),r=o.app.metadataCache.getFirstLinkpathDest(s,n.path);r&&"not-change"!==o.settings.finalLinkFormat&&(l=L(r,n,o,o.settings.finalLinkFormat));const C=r&&"md"===r.extension?`.${r.extension}`:"";if("wiki"===t)return a=""!==i&&i!==decodeURI(l)?r&&decodeURI(i)===r.basename?"":"|"+i:"",`[[${decodeURI(l)}${a}]]`;if("markdown"===t)return a=""!==i?i:r?r.basename:l,`[${a}](${encodeURI(l)}${C})`;if("wikiTransclusion"===t)return`[[${decodeURI(l)}#${decodeURI(i)}]]`;if("mdTransclusion"===t){let t=i;return i.startsWith("^")?(t=encodeURI(t.slice(1)),t=`^${t}`):t=encodeURI(t),`[](${encodeURI(l)}${C}#${t})`}return""};const u=/\[\[(.*?)#.*?\]\]/,k=/(?<=\[\[)(.*)(?=#)/,f=/(?<=#).*?(?=]])/,m=/\[.*?]\((.*?)#.*?\)/,g=/(?<=\]\()(.*)(?=#)/,v=/(?<=#).*?(?=\))/,w=t=>u.test(t),M=t=>m.test(t),y=t=>{let e=u.test(t),i=m.test(t);if(e||i){let i=t.match(e?k:g);if(i)return i[0]}return""},A=t=>{let e=u.test(t),i=m.test(t);if(e||i){let i=t.match(e?f:v);if(i)return i[0]}return""};class x extends t.Modal{constructor(t,e,i){super(t),this.message=e,this.callback=i}onOpen(){let{contentEl:t}=this,e=t.createEl("div");e.addClass("oz-modal-center"),e.innerHTML=`\n
\n

Link Converter Plugin

\n
\n

${this.message}

\n `,t.createEl("button",{text:"Continue"}).addEventListener("click",(()=>{this.callback(),this.close()}));const i=t.createEl("button",{text:"Cancel"});i.style.cssText="float: right;",i.addEventListener("click",(()=>this.close()))}}class F extends t.FuzzySuggestModal{constructor(t,e){super(t.app),this.plugin=t,this.finalFormat=e}getItemText(t){return t.path}getItems(){return function(e){let i=[],n=e.vault.getRoot();function o(e){for(let n of e.children)if(n instanceof t.TFolder){let t=n;i.push(t),t.children&&o(t)}}return i.push(n),o(n),i}(this.app)}onChooseItem(t,e){let i=`Are you sure you want to convert all \n ${"wiki"===this.finalFormat?"Markdown Links to Wikilinks":"Wikilinks to Markdown Links"} \n under ${t.name}?`;new x(this.app,i,(()=>s(t,this.plugin,this.finalFormat))).open()}}class T extends t.Plugin{constructor(){super(...arguments),this.addFileMenuItems=(i,n)=>{if(n instanceof t.TFile&&"md"===n.extension){if(i.addSeparator(),i.addItem((t=>{t.setTitle("Markdown Links to Wiki").setIcon("bracketIcon").onClick((()=>a(n,this,"wiki")))})),i.addItem((t=>{t.setTitle("WikiLinks to Markdown").setIcon("markdownIcon").onClick((()=>a(n,this,"markdown")))})),"not-change"!==this.settings.finalLinkFormat){let a=this.settings.finalLinkFormat;i.addItem((i=>{i.setTitle("All Links to "+("absolute-path"===a?"Absolute Path":"shortest-path"===a?"Shortest Path":"Relative Path")).setIcon("linkEditIcon").onClick((()=>((i,n,a)=>e(void 0,void 0,void 0,(function*(){let e=yield n.app.vault.read(i),l=yield o(i,n);for(let t of l){let o=decodeURI(t.linkText),l=n.app.metadataCache.getFirstLinkpathDest(o,t.sourceFilePath);l&&(o=L(l,i,n,a),e=e.replace(t.match,p(t.type,o,t.altOrBlockRef,i,n)))}let s=n.settings.keepMtime?yield n.app.vault.adapter.stat(t.normalizePath(i.path)):{};yield n.app.vault.modify(i,e,s)})))(n,this,a)))}))}i.addSeparator()}}}onload(){return e(this,void 0,void 0,(function*(){console.log("Link Converter Loading..."),t.addIcon("bracketIcon",''),t.addIcon("markdownIcon",''),t.addIcon("linkEditIcon",' '),yield this.loadSettings(),this.addSettingTab(new n(this.app,this)),this.addCommand({id:"convert-wikis-to-md-in-active-file",name:"Active File: Links to Markdown",callback:()=>{l(this,"markdown")}}),this.addCommand({id:"convert-md-to-wikis-in-active-file",name:"Active File: Links to Wiki",callback:()=>{l(this,"wiki")}}),this.addCommand({id:"convert-wikis-to-md-in-vault",name:"Vault: Links to Markdown",callback:()=>{new x(this.app,"Are you sure you want to convert all Wikilinks to Markdown Links?",(()=>C(this,"markdown"))).open()}}),this.addCommand({id:"convert-mdlinks-to-wiki-in-vault",name:"Vault: Links to Wiki",callback:()=>{new x(this.app,"Are you sure you want to convert all Markdown Links to Wikilinks?",(()=>C(this,"wiki"))).open()}}),this.addCommand({id:"convert-wikis-to-mdlink-under-folder",name:"Certain Folder: Links to Markdown",callback:()=>{new F(this,"markdown").open()}}),this.addCommand({id:"convert-mdlinks-to-wikis-under-folder",name:"Certain Folder: Links to Wiki",callback:()=>{new F(this,"wiki").open()}}),this.addCommand({id:"convert-wikis-to-mdlinks-within-selection",name:"Editor Selection: Links to Markdown",callback:()=>e(this,void 0,void 0,(function*(){return r("markdown",this)}))}),this.addCommand({id:"convert-mdlinks-to-wiki-within-selection",name:"Editor Selection: Links to Wiki",callback:()=>e(this,void 0,void 0,(function*(){return r("wiki",this)}))}),this.settings.contextMenu&&this.app.workspace.on("file-menu",this.addFileMenuItems)}))}onunload(){console.log("Link Converter Unloading..."),this.app.workspace.off("file-menu",this.addFileMenuItems)}loadSettings(){return e(this,void 0,void 0,(function*(){this.settings=Object.assign({},i,yield this.loadData())}))}saveSettings(){return e(this,void 0,void 0,(function*(){yield this.saveData(this.settings)}))}}module.exports=T; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9zZXR0aW5ncy50cyIsInNyYy91dGlscy50cyIsInNyYy9jb252ZXJ0ZXIudHMiLCJzcmMvbW9kYWxzLnRzIiwic3JjL21haW4udHMiLCJzcmMvaWNvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwidmFsdWUiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJERUZBVUxUX1NFVFRJTkdTIiwibXlTZXR0aW5nIiwiY29udGV4dE1lbnUiLCJmaW5hbExpbmtGb3JtYXQiLCJrZWVwTXRpbWUiLCJMaW5rQ29udmVydGVyU2V0dGluZ3NUYWIiLCJQbHVnaW5TZXR0aW5nVGFiIiwiY29uc3RydWN0b3IiLCJhcHAiLCJwbHVnaW4iLCJzdXBlciIsInRoaXMiLCJkaXNwbGF5IiwiY29udGFpbmVyRWwiLCJlbXB0eSIsImNyZWF0ZUVsIiwidGV4dCIsIlNldHRpbmciLCJzZXROYW1lIiwic2V0RGVzYyIsImFkZFRvZ2dsZSIsInRvZ2dsZSIsInNldFZhbHVlIiwic2V0dGluZ3MiLCJvbkNoYW5nZSIsIm5ld1ZhbCIsInNhdmVTZXR0aW5ncyIsIndvcmtzcGFjZSIsIm9uIiwiYWRkRmlsZU1lbnVJdGVtcyIsIm9mZiIsImFkZERyb3Bkb3duIiwiZHJvcGRvd24iLCJhZGRPcHRpb24iLCJvcHRpb24iLCJjb2ZmZWVEaXYiLCJjcmVhdGVEaXYiLCJhZGRDbGFzcyIsImhyZWYiLCJhdHRyIiwic3JjIiwiaGVpZ2h0IiwiZ2V0QWxsTGlua01hdGNoZXNJbkZpbGUiLCJtZEZpbGUiLCJsaW5rTWF0Y2hlcyIsImZpbGVUZXh0IiwidmF1bHQiLCJyZWFkIiwid2lraU1hdGNoZXMiLCJtYXRjaCIsImZpbGVSZWdleCIsImFsdFJlZ2V4Iiwid2lraU1hdGNoIiwibWF0Y2hJc1dpa2lUcmFuc2NsdXNpb24iLCJmaWxlTmFtZSIsImdldFRyYW5zY2x1c2lvbkZpbGVOYW1lIiwiYmxvY2tSZWZNYXRjaCIsImdldFRyYW5zY2x1c2lvbkJsb2NrUmVmIiwibGlua01hdGNoIiwidHlwZSIsImxpbmtUZXh0IiwiYWx0T3JCbG9ja1JlZiIsInNvdXJjZUZpbGVQYXRoIiwicGF0aCIsInB1c2giLCJmaWxlTWF0Y2giLCJzdGFydHNXaXRoIiwiYWx0TWF0Y2giLCJtYXJrZG93bk1hdGNoZXMiLCJtYXJrZG93bk1hdGNoIiwibWF0Y2hJc01kVHJhbnNjbHVzaW9uIiwiY29udmVydExpbmtzQW5kU2F2ZUluU2luZ2xlRmlsZSIsImZpbmFsRm9ybWF0IiwibmV3RmlsZVRleHQiLCJjb252ZXJ0V2lraUxpbmtzVG9NYXJrZG93biIsImNvbnZlcnRNYXJrZG93bkxpbmtzVG9XaWtpTGlua3MiLCJmaWxlU3RhdCIsImFkYXB0ZXIiLCJzdGF0Iiwibm9ybWFsaXplUGF0aCIsIm1vZGlmeSIsImNvbnZlcnRMaW5rc0luQWN0aXZlRmlsZSIsImdldEFjdGl2ZUZpbGUiLCJleHRlbnNpb24iLCJOb3RpY2UiLCJjb252ZXJ0TGlua3NVbmRlckZvbGRlciIsImZvbGRlciIsIm1kRmlsZXMiLCJmaWxlc1VuZGVyUGF0aCIsInJlY3Vyc2l2ZUZ4IiwiZm9sZGVyT2JqIiwiZ2V0QWJzdHJhY3RGaWxlQnlQYXRoIiwiVEZvbGRlciIsImNoaWxkcmVuIiwiY2hpbGQiLCJURmlsZSIsImdldEZpbGVzVW5kZXJQYXRoIiwibm90aWNlIiwidG90YWxDb3VudCIsImxlbmd0aCIsImNvdW50ZXIiLCJzZXRNZXNzYWdlIiwiaGFzRnJvbnRtYXR0ZXIiLCJlcnIiLCJjb25zb2xlIiwibG9nIiwiaGlkZSIsImNvbnZlcnRMaW5rc1dpdGhpblNlbGVjdGlvbiIsImFjdGl2ZUxlYWYiLCJnZXRBY3RpdmVWaWV3T2ZUeXBlIiwiTWFya2Rvd25WaWV3IiwiZWRpdG9yIiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwic291cmNlRmlsZSIsImZpbGUiLCJuZXdUZXh0IiwicmVwbGFjZVNlbGVjdGlvbiIsImNvbnZlcnRMaW5rc0luVmF1bHQiLCJnZXRSb290IiwiZmlsZVBhdGgiLCJrZXlUb0NoZWNrIiwibWV0YUNhY2hlIiwibWV0YWRhdGFDYWNoZSIsImdldENhY2hlIiwiZnJvbnRtYXR0ZXIiLCJtZCIsIm5ld01kVGV4dCIsImZpbHRlciIsIm1kTGluayIsImNyZWF0ZUxpbmsiLCJyZXBsYWNlIiwid2lraVRyYW5zY2x1c2lvbnMiLCJ3aWtpVHJhbnNjbHVzaW9uIiwid2lraVRyYW5zY2x1c2lvbkxpbmsiLCJ3aWtpTGluayIsIm1kVHJhbnNjbHVzaW9ucyIsIm1kVHJhbnNjbHVzaW9uIiwiZ2V0RmlsZUxpbmtJbkZvcm1hdCIsImZpbGVMaW5rIiwibGlua2VkRmlsZVBhdGgiLCJ0cmltIiwiYXJyIiwic3RhcnQiLCJlbmQiLCJzbGljZSIsImZyb21QYXJ0cyIsInNwbGl0IiwidG9QYXJ0cyIsIk1hdGgiLCJtaW4iLCJzYW1lUGFydHNMZW5ndGgiLCJpIiwib3V0cHV0UGFydHMiLCJjb25jYXQiLCJqb2luIiwiZ2V0UmVsYXRpdmVMaW5rIiwiZ2V0RmlsZXMiLCJmIiwibmFtZSIsImVuZHNXaXRoIiwiZGVzdCIsIm9yaWdpbmFsTGluayIsImFsdFRleHQiLCJmaW5hbExpbmsiLCJkZWNvZGVVUkkiLCJnZXRGaXJzdExpbmtwYXRoRGVzdCIsImZpbGVFeHRlbnNpb24iLCJiYXNlbmFtZSIsImVuY29kZVVSSSIsImVuY29kZWRCbG9ja1JlZiIsIndpa2lUcmFuc2NsdXNpb25SZWdleCIsIndpa2lUcmFuc2NsdXNpb25GaWxlTmFtZVJlZ2V4Iiwid2lraVRyYW5zY2x1c2lvbkJsb2NrUmVmIiwibWRUcmFuc2NsdXNpb25SZWdleCIsIm1kVHJhbnNjbHVzaW9uRmlsZU5hbWVSZWdleCIsIm1kVHJhbnNjbHVzaW9uQmxvY2tSZWYiLCJ0ZXN0IiwiaXNXaWtpIiwiaXNNZCIsImZpbGVOYW1lTWF0Y2giLCJDb25maXJtYXRpb25Nb2RhbCIsIk1vZGFsIiwibWVzc2FnZSIsImNhbGxiYWNrIiwib25PcGVuIiwiY29udGVudEVsIiwibWFpbkRpdiIsImlubmVySFRNTCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbG9zZSIsImNhbmNlbEJ1dHRvbiIsInN0eWxlIiwiY3NzVGV4dCIsIkZvbGRlclN1Z2dlc3Rpb25Nb2RhbCIsIkZ1enp5U3VnZ2VzdE1vZGFsIiwiZ2V0SXRlbVRleHQiLCJpdGVtIiwiZ2V0SXRlbXMiLCJmb2xkZXJzIiwicm9vdEZvbGRlciIsImNoaWxkRm9sZGVyIiwiZ2V0QWxsRm9sZGVyc0luVmF1bHQiLCJvbkNob29zZUl0ZW0iLCJldnQiLCJpbmZvVGV4dCIsIkNvbnZlcnRlci5jb252ZXJ0TGlua3NVbmRlckZvbGRlciIsIm9wZW4iLCJMaW5rQ29udmVydGVyUGx1Z2luIiwiUGx1Z2luIiwibWVudSIsImFkZFNlcGFyYXRvciIsImFkZEl0ZW0iLCJzZXRUaXRsZSIsInNldEljb24iLCJvbkNsaWNrIiwiQ29udmVydGVyLmNvbnZlcnRMaW5rc0FuZFNhdmVJblNpbmdsZUZpbGUiLCJDb252ZXJ0ZXIuY29udmVydExpbmtzSW5GaWxlVG9QcmVmZXJyZWRGb3JtYXQiLCJvbmxvYWQiLCJhZGRJY29uIiwibG9hZFNldHRpbmdzIiwiYWRkU2V0dGluZ1RhYiIsImFkZENvbW1hbmQiLCJpZCIsIkNvbnZlcnRlci5jb252ZXJ0TGlua3NJbkFjdGl2ZUZpbGUiLCJDb252ZXJ0ZXIuY29udmVydExpbmtzSW5WYXVsdCIsIkNvbnZlcnRlci5jb252ZXJ0TGlua3NXaXRoaW5TZWxlY3Rpb24iLCJvbnVubG9hZCIsIk9iamVjdCIsImFzc2lnbiIsImxvYWREYXRhIiwic2F2ZURhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O2dGQXFFTyxTQUFTQSxFQUFVQyxFQUFTQyxFQUFZQyxF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 -- cgit v1.2.3